103 votes

Après l'installation de MySQL via Brew, je reçois l'erreur - Le serveur s'est arrêté sans mettre à jour le fichier PID

Ok, j'ai cherché partout et j'ai passé beaucoup de temps à installer, désinstaller, essayer diverses options mais sans succès.

Je suis sur Mac OS X Lion (10.7.3) et j'essaie de configurer Python, MySQL.

J'ai installé avec succès Python et MySQL via HomeBrew. Python fonctionne très bien.

Après l'installation de MySQL, j'ai suivi les deux premières étapes - les commandes unset et mysql_install_db.

Maintenant, lorsque j'essaie de démarrer mysql "mysql.server start", j'obtiens l'erreur suivante

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar est mon nom d'utilisateur sur ma machine.

17voto

phpguru Points 420

Novembre 2014 : Si vous obtenez cette erreur sur MySQL 5.6.x sur Mac OS X Mavericks ou Yosemite et que vous souhaitez utiliser MySQL avec PHP en local (/tmp/mysql.sock est l'endroit où PHP PDO s'attend à trouver le fichier sock), voici ce qui l'a résolu pour moi :

1) Décommentez les lignes du fichier de configuration homebrew par défaut et éditez comme ci-dessous

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = 
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME est ce que vous avez dans Préférences Système -> Réseau en tant qu'identifiant unique pour votre ordinateur sur le réseau.

2) Définissez les autorisations sur tous les fichiers dans le répertoire de données mysql. Ils étaient tous possédés par [mon_nom_d'utilisateur]. MySQL est très pointilleux à ce sujet et refuse de créer le fichier pid à moins que lui-même (l'utilisateur _mysql) ne possède le répertoire.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Démarrez MySQL en utilisant le script d'aide/enveloppe bash :

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

J'espère que cela vous aidera. Si ce qui précède ne fonctionne pas pour vous, essayez d'exécuter manuellement le binaire mysqld_safe dans le répertoire Cellar/mysql/VERSION_/bin/ et vérifiez quelles sont les configurations (s'il s'exécute)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Si cela fonctionne, vous pouvez

ps aux | grep mysql 

et voir quelque chose comme

[nom_d_utilisateur]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Je ne sais pas pourquoi cela a fonctionné pour moi mais cela vous montre d'où je tire les options du fichier de configuration my.cnf. Vous pouvez également utiliser les options de ligne de commande pour essayer de diagnostiquer lorsque vous démarrez mysqld manuellement.

Si vous parvenez à démarrer le serveur MySQL en utilisant mysqld_safe, vous devrez peut-être faire cela pour l'arrêter avant d'essayer l'aide bash mysql.server. Résistez à l'envie de kill -9 [PID] car vous pourriez corrompre vos données.

mysqladmin -uroot shutdown

Bonne chance !

10voto

Kresimir Plese Points 111

Cela a fonctionné pour moi :

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

8voto

Cela a fonctionné pour moi sur 10.12.2 :

$ rm /usr/local/var/mysql/*.err

puis

$ brew services restart mysql

3voto

LonnyLot Points 486

Si je me souviens bien, c'est une question d'autorisations. Essayez de 'toucher' et de 'chmoder' le fichier pid ou le dossier dans lequel le fichier est stocké.

3voto

Grimmo Points 575

Mon problème était que j'avais démarré le serveur en tant que sudo une fois et ensuite j'ai essayé de le redémarrer en tant qu'utilisateur local.

Ici, mysql n'était pas en mesure d'écrire dans le fichier '.err' détenu par root. J'ai dû supprimer ce fichier et redémarrer le serveur :

sudo rm /usr/local/var/mysql/*.err
mysql.server start

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X