MySQL errors

Résoudre les erreurs Mysql courantes sur Linux

MySQL est un système de gestion de base données open source (SGBD) qui permet de stocker et organiser et récupérer des données. Ce Tutorial vous présente quelques erreurs les plus courants de MySQL que vous pouvez rencontré.

Pour avoir plus d’infos sur MySQL réferez vous aux artciles ci-dessous :

-Comment installer MySQL sur CentOS 7
-MySQL : Commandes simple à connaître
-mysqldump : sauvegarder et restaurer une base MySQL
-MySQL: Comment s’y connecter en ligne de commande
-Configurer la réplication MySQL Master/Slave sur CentOS 7

ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

Vous recevez ce message d’erreur quand vous vérifiez l’état du service mysqld :

# service mysql status 
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

un redémarrage su service de résout le soucie :

# service mysql restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.... ERROR! The server quit without updating PID file

Solution:

Supprimer le fichier lock et redémarrer le service :

[root@slave ~]# rm /var/lock/subsys/mysql
[root@DBserver ~]# systemctl restart mysqld

Si l’erreur persiste cela signifie que mysql n’a pas été arrêté correctement, vérifiez donc avec ps s’il y a des process mysql qui tournent et arrêter les avec la commande kill :

[root@DBserver ~]# ps -ef | grep mysqld | grep -v mysqld
[root@DBserver ~]# kill -9 5692 3594

Une fois cela fait, redémarrez le service et vérifiez.

can not connect to mysql server through socket ‘var /run/mysqld/mysqld.sock’

Cette erreur est affichée quand vous essayez de vous connecter au serveur Mysql :

[root@DBserver ~]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): can not connect to mysql server through socket 'var /run/mysqld/mysqld.sock'

Elle indique que les serveur Mysql n’est pas démarré Par conséquent, le client ne peut pas s’y connecter.

Solution :

Vérifier si MySQL est en cours d’exécution :

[root@DBserver ~]# ps -ef | grep mysqld | grep -v mysqld

Si aucun process n’est affiché, démarrer alors le service mysql et vérifier son état :

[root@DBserver ~]# systemctl start mysql
[root@DBserver ~]# systemctl status mysql

Access denied for user ‘user’@’localhost’

Si vous rencontrez une erreur d’accès refusé , vérifiez si le compte d’utilisateur est autorisé à se connecter au serveur et l’hôte à partir duquel la connexion provient.

Vous pouvez voir quels sont les privilèges d’un compte donné en exécutant la commande SHOW GRANTS :

[root@DBserver ~]# SHOW GRANTS FOR 'user'@'192.168.1.23';

Si l’utilisateur n’a pas de privilège, vous pouvez en lui accorder avec la commande :

[root@DBserver ~]# grant all privileges on *.database to 'user'@'192.168.1.23';

Si vous rencontrez d’autre erreurs, référez vous au site web de mysql.