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!
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:
J'espère que cela t'aides.
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
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é.
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
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!
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.