web-dev-qa-db-fra.com

PID du serveur MySql introuvable

J'ai CentOS 6.4 avec NGINX.

Quand j'essaie de start/stop/restart serveur mysql (/etc/init.d/mysqld restart) j'obtiens cette erreur:

MySQL server PID file could not be found!                  [FAILED]
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/mysqld.pid).

Que puis-je faire pour résoudre ce problème?

Merci!

8
MM PP

J'ai eu la même erreur sur un CentOS 6.3 où j'ai mis à jour MySQL vers 5.6.14 mais j'ai conservé l'ancien fichier my.cnf. Après la mise à niveau, MySQL ne démarre plus, ce qui me donne la même erreur que celle que vous avez décrite.

Le problème était que j'avais ce paramètre dans my.cnf:

table_cache=2048

Selon ce lien table_cache renommé table_open_cache ..

"Apparemment, dans 5.5, la variable système table_cache a été renommée Table_open_cache. Dans 5.6, mysqld échoue s'il trouve une variable inconnue . Cela signifie que les mises à niveau à partir de versions antérieures à 5.5 peuvent avoir problèmes si table_cache est spécifié dans my.cnf. "

Après avoir changé la ligne ci-dessus en 

table_open_cache=2048

MySQL a parfaitement démarré.

Donc, dans le cas où vous avez MySQL 5.5+ (et peut-être un ancien my.cnf), je vous suggère de procéder comme suit:

  • supprimez my.cnf du dossier/etc et essayez de démarrer MySQL
  • si MySQL démarre, le problème est dans my.cnf. Commentez/décommentez tous les paramètres un par un afin de déterminer l'origine du problème.

J'espère que cela t'aides.

6
Ciprian Stoica

J'ai mis à niveau mon Mac OS vers 10.9.3 et j'ai rencontré le problème ci-dessus lors du redémarrage de mysql.server.

Ce qui suit a résolu mon problème

Sudo chmod -R o+rwx /usr/local/var/mysql/
Sudo chown -R mysql /usr/local/var/mysql/
Sudo mysql.server restart
2
arpiagar

Je trouve que parfois les processus MySQL sont toujours en cours d'exécution. Ce fut certainement le cas sur mon système OS X Yosemite, utilisez donc la commande suivante pour rechercher tout processus apparaissant avec MySQL dans le nom:

ps aux | grep mysql

Ensuite, tuez-les à l'aide de la commande Sudo kill -9 PID, en remplaçant PID par l'ID de processus incriminé.

1
Selwyn Polit

Tout d’abord, assurez-vous que le dossier/fichier n’existe pas dans /var/run/mysqld/mysqld.pid

si dir n'existe pas, créez le comme:

Sudo mkdir -p /var/run/mysqld/

si mysqld.pid n’existe pas, créez-le en tant que:

Sudo touch /var/run/mysqld/mysqld.pid

changer de propriétaire en tant que:

Sudo chown mysql:mysql -R /var/run/mysqld
chmod 775 -R /var/run/mysqld

redémarrer le service mysql

Sudo service mysql restart
1
Balkrushna Patil

J'ai trouvé cela a fonctionné ....

# ps aux | grep mysql
root      3668  0.0  0.0  11432  1240 ?        S     2014   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/db/data01 --pid-file=/var/lib/mysql/mysql.pid
mysql     5303  0.1  0.4 1964748 12368 ?       S<l   2014 1663:35 /usr/sbin/mysqld --basedir=/usr --datadir=/db/data01 --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/db/logs01/mysql-error.err --open-files-limit=8192 --pid-file=/var/lib/mysql/mysql.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root     12369  0.0  0.0   6376   680 pts/0    S+   09:05   0:00 grep mysql
# kill -9 3668 5303
# rm /var/lock/subsys/mysql rm: remove regular empty file `/var/lock/subsys/mysql'? y
# service mysql start Starting MySQL (Percona Server).. SUCCESS!
0
jafo

Vérifiez s'il y a un verrou.

/etc/init.d/mysql status

Si le système d'exploitation dit qu'il y a un verrou, quelque chose comme:

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

supprimez ce fichier de verrouillage et redémarrez.

0
giuseppe