Je suis en cours d'exécution serveur Ubuntu. Quand j'ai essayé de me connecter à mysql (qui fonctionnait), j'ai eu l'erreur suivante
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Mais le fichier mysqld.sock n'existe pas dans le dossier /var/run/mysqld
. Lors de l'exécution de la commande ps aux | grep mysql
, j'ai réalisé que le serveur mysql n'était pas en cours d'exécution.
J'ai ensuite essayé de redémarrer le serveur mysql en utilisant
service mysql start
service mysql restart
/etc/init.d/mysql start
Mais le processus de démarrage a échoué dans les 3 cas. Les fichiers /var/log/mysql/mysql.log
et /var/log/mysql/mysql.err
sont vides.
Mais /var/log/error.log
affiche les informations suivantes:
140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting
140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
Cela a résolu mon problème:
mkdir /var/run/mysqld
touch /var/run/mysqld/mysqld.sock
chown -R mysql /var/run/mysqld
/etc/init.d/mysql restart
J'ai résolu le problème de la manière suivante:
chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/
Dans un autre contexte, je l'ai affronté parce que le démon mysql n'a pas pu démarrer. Démarrez donc le démon avec la commande - mysqld start
et essayez ensuite de démarrer le service.
J'ai eu le même message d'erreur et la même vide dans les fichiers journaux. Dans mon fichier de configuration (my.cnf), j'avais indiqué que je voulais utiliser les tables myisam, en ajoutant cette ligne dans la section [mysqld]:
default-table-type = myisam
Après la mise à jour de mysql, il semble que cela empêche MySql de démarrer. J'ai changé ceci en:
default-storage-engine = myisam
et maintenant tout fonctionne bien.
Dans mon cas, c'était un problème d'espace. Vérifiez s'il vous reste suffisamment d'espace.
de /var/log/mysql/error.log
j'ai eu quelques indices de deux lignes:
2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'
Je pourrais voir que c'est une question d'espace.
root@xxx:/home/user1# df -h
Filesystem Size Used Avail Use% Mounted on
udev 477M 0 477M 0% /dev
tmpfs 100M 11M 89M 11% /run
/dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 472M 467M 0 100% /boot
tmpfs 100M 0 100M 0% /run/user/1000
À partir de là, j'ai pu constater qu'il ne restait plus assez d'espace sur le serveur virtuel /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /
. Et je pensais soit à la migration ou à l’augmentation du lecteur virtuel, mais j’ai décidé de supprimer d’abord les fichiers inutiles.
Donc, dû nettoyer le cache et les fichiers inutiles:
#apt-get clean
#apt-get -f autoremove
Ensuite, n'oubliez pas de supprimer les fichiers journaux endommagés par mysql par la suite. Ils seraient générés à nouveau lorsque vous redémarrez mysql
#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start
Vérifiez votre service de serveur mysql et il est probablement opérationnel
root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 1558 (mysqld)
Tasks: 29
Memory: 280.3M
CPU: 589ms
CGroup: /system.slice/mysql.service
└─1558 /usr/sbin/mysqld
Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#
Affaire classée. J'espère que ça aide.
Augmenter le RAM disponible en ajoutant un nouvel espace de swap peut également aider. Les étapes sont ici
Assurez-vous de créer un fichier/fichier d'échange d'une taille inférieure à l'espace disponible indiqué par
df -h
Par exemple pour moi la sortie de df- h était:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.2G 6.3G 16% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 12K 492M 1% /dev
tmpfs 100M 336K 99M 1% /run
J'ai donc créé en utilisant 2 G
Sudo fallocate -l 2G /swapfile
Et puis juste commencer le service
Sudo /etc/init.d/mysql restart
J'espère que cela t'aides. Bonne chance.
Ma solution:
Vérifiez si dans tous /etc/rc1.d ... /etc/rc5.d, le script mysql commence par S (Ex S10mysql) et non par K AS K10mysql.
Explication: les préfixes K chargés avec stop, type de service kill; et le préfixe S commence par le paramètre de démarrage.
execute in terminal:
(command script action runlevel)
---------------------------------------
Sudo update-rc.d mysql enable 2
Sudo update-rc.d mysql enable 3
Sudo update-rc.d mysql enable 4
Sudo update-rc.d mysql enable 5
La commande suivante résout mon problème et mysql pourrait démarrer après. (Cela peut être utile dans certains cas)
chown -R mysql: /var/lib/mysql
Supprimez le fichier /var/lib/mysql/.run-mysql_upgrade et il devrait démarrer
;)
"Avec un grand pouvoir vient une grande responsabilité"
J'ai eu ce problème lorsque j'ai défini max_allowed_packet = 0.5M
dans /etc/mysql/my.cnf
.
Je l'ai résolu en remplaçant max_allowed_packet
par 1M
.