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.
Brajeshwar
la source

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/*
Janmoesen
la source
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.

Mikoop
la source
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!
artnikpro
la source
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

Rakesh James
la source
À 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!

phpguru
la source
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
Cercle B
la source
10

Cela a fonctionné pour moi:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start
Kresimir Plese
la source
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
Suryanto Rachmat
la source
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é.

LonnyLot
la source
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
Grimmo
la source
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.

Claude COULOMBE
la source
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
caarlos0
la source
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.

Pritam Banerjee
la source
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 /

Amitesh Bharti
la source
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

EsterlingAccime Youtuber
la source
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é.

Mani
la source
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.

Janac Meena
la source
0
sudo chmod -R 777 /usr/local/var/mysql/

travaille pour moi.

Anshul
la source
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.

0yeoj
la source
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!

Gasgeber
la source
0
$ sudo mysql.server restart

Ça marche pour moi.

Lucas Ocon
la source
0

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

cd /usr/local/Cellar
sudo chown _mysql mysql
shakti singh
la source
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.

Wallance
la source
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.

master_dodo
la source
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 ..

Edward Schaefer
la source
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.

Ayush Goel
la source
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é [email protected] sur mon macbook mojave avec homebrew

brew installer [email protected]

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!

何德福
la source
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.

theredled
la source
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 [email protected]puis 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 [email protected]et 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

Vallie
la source
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
Jahmic
la source
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