web-dev-qa-db-fra.com

Une fois MySQL installé via Brew, le message d'erreur s'affiche: le serveur s'est arrêté sans mettre à jour le fichier PID.

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 sous 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 le mysql_install_db commandes.

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.
71
Brajeshwar

EDIT 2012/09/18: Comme signalé par Kane , assurez-vous que la base de données mysql est correctement mettre en place avant de faire autre chose. Voir " erreur PID sur mysql.server start? " pour plus d'informations.

Réponse originale conservée dans l'intérêt de l'histoire: Il est fort probable que est un problème d'autorisations. Vérifier /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

Je devais aussi faire ceci:

Sudo chown _mysql /usr/local/var/mysql/*
73
janmoesen

J'ai constaté qu'il s'agissait d'un problème d'autorisations avec le dossier mysql.

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

résolu pour moi.

93
mikoop

Je me suis retrouvé avec la réinstallation complète de MySQL, et cela a finalement fonctionné.

WARNING Ceci supprimera toutes vos bases de données. Veillez donc à enregistrer les sauvegardes en premier.

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!
49
artnikpro

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

Ce que j'ai fait pour résoudre ce problème

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

28
Rakesh James

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

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

$ 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 pour votre ordinateur sur le réseau.

2) Définissez les autorisations sur tous les fichiers de mysql datadir. Ils appartenaient tous à [mon_nom_utilisateur]. MySQL est très pointilleux à ce sujet et refuse de créer le fichier pid sauf s’il (l’utilisateur _mysql) est propriétaire du répertoire.

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

3) Démarrez MySQL en utilisant le script helper/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 manuellement le fichier binaire mysqld_safe dans le répertoire Cellar/mysql/VERSION_/bin/et vérifiez les paramètres (s’il est exécuté).

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 suis pas sûr de savoir pourquoi cela a fonctionné pour moi, mais cela vous montre d'où proviennent les options du fichier de configuration my.cnf. Vous pouvez également utiliser les options de la ligne de commande pour essayer de résoudre le problème lors du démarrage manuel de mysqld.

Si vous exécutez gérer le serveur MySQL avec mysqld_safe, vous devrez peut-être le faire pour l'éteindre avant d'utiliser l'assistant mysql.server bash. Résistez à l'envie de tuer -9 [PID] car vous pouvez corrompre vos données.

mysqladmin -uroot shutdown

Bonne chance!

18
phpguru

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

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

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

Trouvez l'info du processus mysql 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
17
Circle B

Cela a fonctionné pour moi:

Sudo chmod -R 777 /usr/local/var/mysql/
Sudo /usr/local/mysql/support-files/mysql.server start
10
Kresimir Plese

Cela a fonctionné pour moi le 10.12.2:

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

ensuite

$ brew services restart mysql
3
Suryanto Rachmat

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

3
LonnyLot

Mon problème était que j'ai démarré le serveur en tant que Sudo une fois et que j'ai ensuite 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
3
Grimmo

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

lance le Disk Utilities.app
choisissez mon lecteur sur le panneau de gauche
cliquez sur le bouton "Réparer les autorisations du disque".

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

2
Claude COULOMBE

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

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

C'est probablement un problème d'autorisations

  1. Trouvez si mysql est en marche et tuez-le

ps -ef | grep mysql

tuer -9 PID

où PID est la deuxième colonne, valeur 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
Amitesh

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 de PID, essayez ceci ci-dessous

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

Étape 2 à nouveau: killall

Étape 3 encore: mysql.server start

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
caarlos0

Ce qui a fonctionné pour moi a été:

  1. Allez dans votre répertoire d'installation mysql
  2. Sudo chmod -R 777 data
  3. Puis retourne à 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 soudainement.

1
Pritam Banerjee

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

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

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

0
Ayush Goel

Ma solution sur OSX El Capitan était la suivante:

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’existe pas de my.cnf fichier par défaut et non requis par défaut, ce que je ne connaissais pas. Bonne chance!

0
Gasgeber

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

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

0
myDoggyWritesCode

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

Osx => Cmd + Space => Disk Utilty => Vérifier les autorisations du disque.

Vérification terminée après les autorisations de réparation du disque. La commande de démarrage de mysql.server est utilisée avec succès.

0
wallance

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

Dans mon cas, la cause était la partition où les fichiers journaux se trouvaient saturés. 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 exécutez df ..

0
Edward Schaefer

toutes les solutions ci-dessus ne fonctionnent pas pour moi. mais ils me donnent des 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

brasser installer [email protected]

journal des erreurs mysql situé dans /usr/local/var/mysql/IU.lan.err, il contient une ligne: impossible d'ouvrir et de verrouiller les tables de privilèges: la table 'mysql.user' n'existe pas

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

rm/usr/local/var/mysql/*

mysqld --initialize

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 un répertoire facile à trouver, tel que Desktop

mysqld --init-file = [VotreFichierInit] &

de nombreux journaux imprimés sur votre écran.

mysql -uroot -pMyNewPass

profitez de votre version haute mysql!

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
shakti singh

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

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

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

un fichier nommé localhost.pid est créé à la place de iMax0.local.pid qui a été déclaré dans l'erreur:

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

La solution qui me convenait consistait à copier localhost.pid et le renommer en iMax0.local.pid.

0
0yeoj
Sudo chmod -R 777 /usr/local/var/mysql/

travaille pour moi.

0
Anshul
$ Sudo mysql.server restart

Ça marche pour moi.

0
Lucas Ocon