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


88

Ok, j'ai cherché partout et j'ai passé pas mal 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 un 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 2 premières étapes - unset et les mysql_install_dbcommandes.

Maintenant, quand j'essaye 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.

Réponses:


80

EDIT 2012/09/18: Comme l'a souligné Kane , assurez-vous que la mysqlbase de données est correctement configurée avant de faire autre chose. Voir « Erreur PID au démarrage de mysql.server? " pour plus d'informations.

La réponse originale est conservée pour des raisons historiques: il s'agit probablement d' un problème d'autorisations. Vérifiez /usr/local/var/mysql/*.err. Le mien a dit:

120314 16:30:14  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

J'ai également dû faire ceci:

sudo chown _mysql /usr/local/var/mysql/*

65
J'ai résolu le problème en cours d'exécution:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani

1
J'obtiens la même erreur, mais je n'ai pas de dossier / usr / local / var / mysql: (J'utilise également homebrew.
Nathan Bashaw

2
Voir les commentaires de brew info mysqlou cette question pour la bonne solution
Kane

4
sudo chmod ugo + w / tmp était ma solution.
Ben Racicot

2
le mien a été résolu avec sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

J'ai trouvé que c'était un problème d'autorisations avec le mysqldossier.

chmod -R 777 /usr/local/var/mysql/ 

résolu pour moi.


18
il n'est pas nécessaire de faire ce 777
JamesHalsall

2
Je cherchais aussi depuis longtemps et c'est ce qui a résolu le problème pour moi.
mordu le

6
Veuillez noter que je ne recommande pas de définir quoi que ce soit sur 777 dans un environnement de production. Cela doit être sur une installation locale uniquement. Je voudrais également le ramener à 755 au minimum.
mikoop

1
Si vous voyez une erreur sur le démarrage de mysql Attention: le fichier de configuration accessible en écriture mondiale '/var/lib/mysql/none-dev/my.cnf' est ignoré Alors vous voudrez probablement chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
le mien a été résolu avec sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

J'ai fini par réinstaller complètement mysql, et cela a finalement fonctionné.

AVERTISSEMENT Cela supprimera toutes vos bases de données, assurez-vous donc d'enregistrer d'abord les vidages.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
J'ai essayé de changer les autorisations de toutes les manières possibles sans succès. J'ai fini par suivre ces instructions et ... succès :)
kartsims

C'est la SEULE solution que j'ai trouvée. Cela devrait être le numéro un
Dan

Merci, c'est la seule chose qui a fonctionné pour moi. Bien que je n'ai pas eu à courirmysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Démarrage de MySQL ... ERREUR! Le serveur s'est arrêté sans mettre à jour le fichier PID (<chemin> -.lightspeed.irvnca.sbcglobal.net.pid). Obtenir cette erreur
Unnikrishnan

1
Juste question homebrew
McGrady

31

J'ai eu ce problème sur mac 10.10.5 Yosemite

Ce que j'ai fait pour résoudre ça

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


À votre santé! Cette façon est la plus simple et a sauvé ma journée!
iplus26

Parfait, vous avez sauvé ma journée;)
Emy Stats

Soupir. Après avoir essayé toutes les solutions sur Internet pendant 2 heures, c'est ce qui a finalement résolu le problème! Un bon vieux redémarrage! :)
SexyBeast

18

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 localement (/tmp/mysql.sock est l'endroit où PHP PDO s'attend à trouver le fichier chaussette), voici ce qui l'a corrigé pour moi:

1) Décommentez les lignes du fichier de configuration homebrew par défaut et modifiez-les 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 = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME est ce que vous avez dans vos préférences système -> Réseau comme identifiant unique de votre ordinateur sur le réseau.

2) Définissez les autorisations sur tous les fichiers dans le datadir mysql. Ils appartenaient tous à [my_username]. MySQL est très pointilleux à ce sujet et refuse de créer le fichier pid à moins qu'il (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 / wrapper bash:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

J'espère que ça t'as aidé. Si ce qui précède ne fonctionne pas pour vous, essayez d'exécuter le binaire mysqld_safe manuellement dans le répertoire Cellar / mysql / VERSION_ / bin / et vérifiez quels sont les paramètres (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

[username]  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ù j'ai obtenu les options de fichier de configuration my.cnf. Vous pouvez également utiliser les options de ligne de commande pour essayer de dépanner lors du démarrage manuel de mysqld.

Si vous exécutez Manage pour exécuter le serveur MySQL en utilisant mysqld_safe, vous devrez peut-être le faire pour l'arrêter avant d'essayer l'assistant bash mysql.server. Résistez à l'envie de tuer -9 [PID] car vous pouvez corrompre vos données.

mysqladmin -uroot shutdown

Bonne chance!


merci - le mien a été résolu avec sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

J'ai eu le même problème sur OS X El Capitan, voici la séquence de commande du terminal qui l'a corrigé pour moi.

Supprimer les fichiers d'erreur (vous devrez changer le chemin en fonction de votre configuration)

sudo rm /usr/local/mysql/data/*.err

Trouvez les informations sur le processus mysql qui est toujours en cours d'exécution et tuez-le:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Maintenant, redémarrez MySQL:

/usr/local/mysql/support-files/mysql.server start

10

Cela a fonctionné pour moi:

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

Cela a résolu mon problème dans MAC os 10.11.3 (après avoir changé le mode en 777 du répertoire mysql)
Ratha

Cela signifie Read Write Execute, ou les droits complets pour tous les utilisateurs sur ce dossier et (-R) tous les fichiers et dossiers sous ce dossier. Pour une explication détaillée, veuillez consulter le lien suivant: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese

4

Cela a fonctionné pour moi le 10.12.2:

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

puis

$ brew services restart mysql

3

Si je me souviens bien, c'est un problème d'autorisations. Essayez de «toucher» et «chmod» le fichier pid ou le dossier dans lequel le fichier est conservé.


Nan. J'ai même essayé chmod 777 pour voir si cela résout le problème mais rien. Même ERREUR.
Brajeshwar

Avez-vous essayé de chmod 777 le répertoire mysql et de supprimer le fichier pid et de redémarrer MySQL?
LonnyLot

3

Mon problème était que j'ai lancé le serveur en tant que sudo une fois, puis j'ai essayé de redémarrer en tant qu'utilisateur local.

Ici, mysql n'a pas pu écrire dans le fichier «.err» appartenant à root. J'ai dû supprimer ce fichier et redémarrer le serveur:

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

2

J'ai un problème similaire avec MySQL sur un Mac (Mac Os X n'a ​​pas pu démarrer le serveur MySQL. Raison: 255 et aussi "ERREUR! Le serveur s'est arrêté sans mettre à jour le fichier PID"). Après un long processus d'essais et d'erreurs, enfin pour restaurer les autorisations du fichier, je viens de le faire:

lancez Disk Utilities.app
choisissez mon lecteur dans le panneau de gauche
cliquez sur le bouton «Réparer les autorisations du disque»

Cela a fait l'affaire pour moi. En espérant que cela puisse aider quelqu'un d'autre.


1

Pour moi, cela a fonctionné avec:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

1

Ce qui a fonctionné pour moi était:

  1. Allez dans votre répertoire d'installation mysql
  2. sudo chmod -R 777 data
  3. Puis revenez en arrière d'un répertoire
  4. cd support-files/
  5. sudo ./mysql.server start

Après cela, le serveur a commencé à fonctionner.

Mais le problème avec cette méthode est que je dois répéter cela chaque fois que je veux démarrer le mysql maintenant. Je ne sais pas pourquoi il a commencé à se comporter comme ça tout à coup.


1

Trouvez le fichier usr / local / var / mysql / your_computer_name.local.err et comprenez plus d'informations sur l'erreur

Emplacement: /usr/local/var/mysql/your_computer_name.local.err

C'est probablement un problème avec les autorisations

  1. Trouvez si mysql est en cours d'exécution et tuez-le

ps -ef | grep mysql

tuer -9 PID

où PID est la valeur de la deuxième colonne 2. vérifier la propriété de mysql

ls -laF / usr / local / var / mysql /

if it is owned by root, change it mysql or your user name

sudo chown -R mysql / usr / local / var / mysql /


1

Essayez ceci (OSX)

Étape 1: ps -aux | grep mysql

Puis tuez le numéro PID à 4 chiffres

Étape 2: kill 1965

Étape 3: mysql.server start

Ou ayant du mal à localiser ces numéros PID, essayez ceci ci-dessous

Étape 1 à nouveau: ps -aux | grep mysql

Étape 2 à nouveau: killall

Étape 3 à nouveau: mysql.server start


1

Veuillez vérifier le journal, vous obtiendrez des informations plus détaillées.

Utilisez la commande ci-dessous pour terminer le journal des erreurs

tail -100 /usr/local/var/mysql/<user_name>.local.err

Pour moi, un des répertoires est manquant, une fois créé le serveur a démarré.


1

La clé à retenir est de vérifier le fichier .err, par défaut sur Mac OSX dans lequel il se trouve /usr/local/var/mysql.

Ce journal m'a révélé que je devais supprimer les fichiers suivants:

ibdata1
ib_logfile0
ib_logfile1

L'exécution de MySQL avec a mysql.startfonctionné avec succès après cela. Notez que la suppression de ces fichiers entraînera probablement une perte de données.


0
sudo chmod -R 777 /usr/local/var/mysql/

travaille pour moi.


0

J'ai eu le même problème:

Mais la situation était, chaque fois que j'essayais d'entrer:

/usr/local/mysql/support-files/mysql.server start

un fichier nommé localhost.pidest créé au lieu de iMax0.local.pidcelui indiqué dans l'erreur:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

La solution qui fonctionne pour moi était de la copier localhost.pidet de la renommer iMax0.local.pid.


0

Ma solution sur OSX El Capitan était:

sudo chmod ugo+w /tmp

Il a été brisé soudainement.

L'erreur était:

ERROR! The server quit without updating PID file

et le journal a montré:

Can't start server : Bind on unix socket: Permission denied

Il peut également être utile de noter que sous OSX, il n'y a pas de my.cnffichier par défaut et non nécessaire par défaut, ce que je ne savais pas. Bonne chance!



0

J'ai eu le même problème. Mais les commandes suivantes m'ont sauvé.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Il s'agit d'un problème d'autorisation de fichier. Vérifiez les autorisations du disque et réparez.

Osx => Cmd + Espace => Utilitaire de disque => Vérifier les autorisations du disque.

Vérifiez terminé après la réparation des autorisations de disque. La commande de démarrage de mysql.server fonctionne avec succès.


Cela a fonctionné pour moi. Veuillez essayer ceci avant de faire autre chose.
kamlesh le

0

Aucune des réponses n'a fonctionné pour moi. Cependant, j'ai simplement faitsudo mysql.server start et cela a bien fonctionné.

En outre, pour moi, il n'a pas montré de problème d'autorisations dans le fichier * .err.


0

J'ai eu ce problème sous Linux, mais la cause est pertinente pour toute installation mysql. Dans mon cas, le serveur plantait avant la fin du démarrage et le fichier pid mis à jour. Les messages d'erreur ont été vus lors du démarrage de mysqld directement au lieu de via "service mysql start".

Dans mon cas, la cause était que la partition où se trouvaient les fichiers journaux était pleine. La suppression des fichiers journaux a permis à mysql de redémarrer. Pour tester ce problème, accédez à l'emplacement de vos journaux d'activité mysql et faites df ..


0

Si vous avez mis à niveau votre installation mysql vers 8.x, vérifiez si votre version précédente est prise en charge pour la mise à niveau .

Sinon, mysql ne fonctionnera pas! Désinstallez votre mysql avec tous les fichiers de configuration dans /usr/local/var/mysql(supprimez tout le dossier). Réinstallez mysql.

REMARQUE: la réinstallation peut entraîner une perte de données.


0

toutes les solutions ci-dessus ne fonctionnent pas pour moi. mais ils me donnent quelques indices pour corriger cette erreur.

mysql.server start ---- error Le serveur s'est arrêté sans mettre à jour le fichier PID

J'ai installé mysql@5.7 sur mon macbook mojave avec homebrew

brew installer mysql@5.7

Journal des erreurs mysql situé dans /usr/local/var/mysql/IU.lan.err, il y a une ligne dedans: Impossible d'ouvrir et de verrouiller les tables de privilèges: La table 'mysql.user' n'existe pas

après avoir essayé de nombreux articles dans le moteur de recherche goole, je me suis tourné vers baidu https://blog.csdn.net/xhool/article/details/52398042 inspiré par cet article, j'ai trouvé la solution:

rm / usr / local / var / mysql / *

mysqld --initialiser

un mot de passe aléatoire pour l'utilisateur root sera affiché dans bash. mais la commande mysql -uroot -p [theRandomPassword] ne peut pas fonctionner. Je dois donc réinitialiser le mot de passe. créer un fichier init avec un contenu comme celui-ci

SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('MyNewPass');

placez-le dans n'importe quel répertoire facile à trouver, tel que Desktop

mysqld --init-file = [YourInitFile] &

de nombreux journaux imprimés sur votre écran.

mysql -uroot -pMyNewPass

profitez de votre mysql haute version!


0

Cela m'est arrivé parce que je passais de MariaDB à Mysql. Le retour à MariaDB a résolu ce problème.

J'imagine que la base de données existante n'était pas compatible.


C'était aussi mon problème, je passais de MariaDB à MySQL. Mais revenir à MariaDB n'était pas une solution acceptable. J'ai supprimé le nouveau mysql brew uninstall mysql@8.0puis supprimé l'ancien dossier mysql créé par MariaDB sudo rm -rf /usr/local/var/mysql(cela supprimera évidemment vos bases de données). Ensuite brew install mysql@8.0et mysql.server startet cela fonctionne.
antriver le

0

Résolu ce sudo chown -R _mysql:_mysql /usr/local/var/mysql problème en utilisant Merci à Matteo Alessani


0

Cette erreur peut être en fait affichée car mysql est déjà démarré. Essayez de voir l'état actuel en:

mysql.server status

J'ai toujours résolu ce problème en supprimant les fichiers journaux, mais j'ai psen fait montré les processus mysql. J'ai tout tué mysql.server restartet ça a marché!
MANGEZ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.