Ou
error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock »
La première chose à faire est de consulter le fichier de log d’erreurs .
Attention: sur mon installation, je me suis fait avoir parce que j’avais un fichier /var/log/mysql.err vide. Or, le fichier est /var/log/mysql/error.log !
root@pouf:/var/log/mysql# tail error.log
130911 14:18:52 InnoDB: Compressed tables use zlib 1.2.3.4
/usr/sbin/mysqld: Can't create/write to file '/tmp/ibUjgCIe' (Errcode: 13)
130911 14:18:52 InnoDB: Error: unable to create temporary file; errno: 13
130911 14:18:52 [ERROR] Plugin 'InnoDB' init function returned error.
130911 14:18:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130911 14:18:52 [ERROR] Unknown/unsupported storage engine: InnoDB
130911 14:18:52 [ERROR] Aborting
130911 14:18:52 [Note] /usr/sbin/mysqld: Shutdown complete
Le message d’erreur (sur la deuxième ligne lue) indique qu’il ne peut pas créer de fichier temporaire dans /tmp. Un coup d’oeuil sur les permission de tmp nous le confirme.
root@pouf:/# ls -l /|grep tmp
4849665 drwxrwxr-x 16 manu manu 20K sept. 11 14:20 tmp
Les propriétaire/groupe ne sont pas bons, et les permissions non plus! Il s’agit sans doute d’un script ou d’un paquet mal construit qui a modifié tout ça (en particulier les dpkg -x qui changent les permissions du répertoire courant!)
sudo chown root:root /tmp
sudo chmod 777 /tmp
sudo chmod +t /tmp
Problème corrigé, mysql redémarre alors correctement. C’est tout bête, mais j’ai perdu une heure à comprendre pourquoi mon système, et en particulier mysql ne fonctionnait plus correctement.
Si ça peut aider…