Hier soir, mon serveur MySQL est tombé en panne de façon inattendue. Lors d'une tentative de redémarrage (avec service mysql restart
- Je suis root), il se bloque simplement. Avec la commande mysql -u root -p
, J'obtiens ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
. J'ai ensuite essayé de démarrer le démon manuellement (mysqld
). L'invite se bloque pendant environ 2 secondes, puis revient. En examinant de plus près les journaux d'erreurs, j'ai obtenu:
2016-01-22T19:18:32.399584Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2016-01-22T19:18:32.399622Z 0 [ERROR] Unable to setup unix socket lock file.
2016-01-22T19:18:32.399646Z 0 [ERROR] Aborting
J'ai ensuite essayé chown mysql /var/run/mysqld
, chmod -R 775 /var/run/mysqld
Et apt-get install mysql-community-server --reinstall
. Pas de chance.
J'ai regardé autour de moi et je n'ai pas trouvé de solution. Une aide ici?
Remarque: j'utilise Debian 8 (Jessie) avec MySQL Community Server 5.7.10
Je suis juste tombé sur ça. L'installation de mysql était un peu bizarre et manquait/var/run/mysqld /
MySQLd tentait de créer le fichier socket et verrou, mais le répertoire parent était manquant. J'ai simplement créé le répertoire
Sudo mkdir /var/run/mysqld
l'a réprimandé à mysql
Sudo chown mysql:mysql /var/run/mysqld
J'ai ensuite pu démarrer mysqld normalement.
J'ai rencontré le même problème aujourd'hui sur mon serveur Ubuntu. Mais je pense que la solution n'est PAS de désactiver le verrouillage. Dans mon cas, un regard sur le journal système (dmesg | tail
et journalctl -xe
) a révélé qu'il s'agit d'un problème d'apparmeur et que la solution peut être trouvée dans cette question .
J'ai eu l'erreur suivante
[ERROR] Unix socket lock file is empty /var/lib/mysql/mysql.sock.lock.
Cette erreur est survenue car mon serveur manquait d'espace 100% d'utilisation (voir ci-dessous)
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 41153856 28531384 12187364 100% /
Assurez-vous que le dossier existe avec les autorisations appropriées
chown mysql:mysql /var/lib/mysql/
Et assurez-vous de supprimer le fichier afin que le serveur mysql puisse en générer un nouveau
rm /var/lib/mysql/mysql.sock.lock
Peut également manquer d'espace disque.
Les commandes ci-dessous ont fonctionné pour moi.
Sudo mkdir /var/run/mysqld
Sudo chmod 777 /var/run/mysqld -R