Erreur de démarrage du serveur MySQL ‘Le serveur se ferme sans mettre à jour le fichier PID’

Sur Snow Leopard, démarrer MySQL donne l’erreur suivante:

Le serveur quitte sans mettre à jour le fichier PID

my.cnf

[mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K pid-file=/var/run/mysqld/mysqld.pid [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 

essayez de trouver votre fichier journal avec le suffixe “.err”, il devrait y avoir plus d’informations. Il pourrait être dans:

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

C’est probablement un problème avec les permissions

  1. vérifier si une instance mysql est en cours d’exécution

    ps -ef | grep mysql

    si oui, vous devriez l’arrêter ou tuer le processus

    tuer -9 PID

    PID est le numéro affiché à côté du nom d’utilisateur en sortie de la commande précédente

  2. vérifier la propriété de /usr/local/var/mysql/

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

    si c’est le propriétaire par root vous devriez le changer mysql ou your_user

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

Avez-vous suivi les instructions de brew install mysql ?

Configurez les bases de données à exécuter en tant que votre compte d’utilisateur avec:

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

Pour configurer des tables de base dans un autre dossier ou utiliser un utilisateur différent pour exécuter mysqld, consultez l’aide de mysqld_install_db :

 mysql_install_db --help 

et voir la documentation MySQL:

Pour exécuter, par exemple, l’utilisateur “mysql”, vous devrez peut-être sudo :

 sudo mysql_install_db ...options... 

Lancez mysqld manuellement avec:

 mysql.server start 

Note: si cela échoue, vous avez probablement oublié d’exécuter les deux premières étapes ci-dessus

J’ai eu le même problème sur ma machine Mac (correctement suivi toutes les étapes d’installation suggérées par l’installation de l’ brew install ).

La suppression du fichier d’erreur l’a corrigé pour moi:

sudo rm -rf /usr/local/var/mysql/dev.work.err ( dev.work est mon nom d’hôte)

Cela a fonctionné parce que dev.work.err appartenait à _mysql:wheel au lieu de mon propre nom d’utilisateur. CHOWN -ing le fichier d’erreur aurait probablement corrigé aussi.

Après le redémarrage, j’ai eu le même problème. Voici comment je l’ai corrigé:

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

Cela a fonctionné pour moi …

Vérifiez tous les processus MySQL en cours d’exécution:

 $ ps aux | grep mysql USER PID %CPU %MEM _mysql 5970 0.0 0.4 ... 

Ensuite, supprimez tous les processus répertoriés dans la commande ci-dessus en utilisant les éléments suivants:

 $ sudo kill -9 [PID] 

Remplacez [PID] par le PID individuel de la liste ci-dessus, par exemple 5970 .

Faites cela pour toutes les lignes que vous voyez avec la première commande.

Ensuite, vous pouvez redémarrer votre serveur MySQL à nouveau:

 mysql.server start 

Mon fichier d’erreur m’a également indiqué que le port était peut-être utilisé par un autre processus, mais simplement exécuter sudo mysql.server start résolu le problème pour moi.

Cette erreur peut survenir lors de la tentative de démarrage de msql après un arrêt incorrect.

  1. Jetez un coup d’oeil au fichier journal d’erreur mysql. S’il mentionne quelque chose comme “Vérifiez que vous n’avez pas déjà un autre processus mysqld utilisant les mêmes données ou fichiers journaux”. , alors vous devez arrêter correctement ce processus.

  2. Voir la procédure sur laquelle s’exécute mysql, utilisez la commande suivante: lsof -i:3306

Votre sortie devrait ressembler à ceci:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 4249 username 17u IPv4 0x7843d9d130469c0b 0t0 TCP localhost:mysql (LISTEN) 
  1. Terminez le processus en cours d’exécution mysql: kill -15 4249

Kill -15 envoie un siganl au processus pour libérer les ressources qu’il verrouille et terminer le processus après.

  1. Maintenant, mysql devrait démarrer sans aucun problème: mysql.server start

Je suis récemment tombé sur ce problème, mais il fonctionnait auparavant, puis s’est arrêté.

C’était parce que j’ai initialement démarré mysql.server tant que root au lieu de moi.

La solution consistait à supprimer le fichier journal err (appartenant à _mysql ). Le recommencer a réussi.

La solution qui a fonctionné pour moi était ici: https://serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied

Changer certaines de mes permissions semblait faire l’affaire. J’exécute un Macbook Air mi-2012 avec OS X 10.8.2 et mysql a été installé avec homebrew.

 chmod 0755 /var chown root:wheel /var/tmp sudo chmod 0771 /usr/local/var/mysql/* 

J’utilise,

  • MacBook Pro OSX 10.7.3.x flambant neuf
  • gcc via OSX GCC Installer

J’ai installé MySQL en utilisant homebrew (‘brew install mysql’). Il a installé quelques dépendances puis mysql.

Quand j’ai essayé de le démarrer,

 west$ mysql.server start Starting MySQL .. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid). 

J’ai couru cette commande,

 west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

et MySQL fonctionne.

Veuillez prendre note que vous devez exécuter mysql_install_db depuis le répertoire racine du répertoire mysql (IE, usr / local / Cellar / mysql / 5.5.25). L’exécuter directement dans le répertoire / scripts ne lui donne pas assez de contexte pour s’exécuter.

Pour moi, la solution consistait à remplacer / corriger le répertoire de données dans / etc / my / cnf.

J’ai construit MySQL 5.5.27 à partir des sources avec les instructions fournies dans le fichier readme:


 # Preconfiguration setup shell> groupadd mysql shell> useradd -r -g mysql mysql # Beginning of source-build specific instructions shell> tar zxvf mysql-VERSION.tar.gz shell> cd mysql-VERSION shell> cmake . shell> make shell> make install # End of source-build specific instructions # Postinstallation setup shell> cd /usr/local/mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data # Next command is optional shell> cp support-files/my-medium.cnf /etc/my.cnf shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server 

mysqld_safe s’est terminé sans explication. L’exécution de /etc/init.d/mysql.server start entraîné l’erreur:

“Le serveur quitte sans mettre à jour le fichier PID”

J’ai remarqué quelque chose d’étrange dans les instructions d’installation cependant. Il a changé de propriétaire pour mysql pour le répertoire “data”, mais pas pour “var”; C’est inhabituel car pendant des années, j’ai dû m’assurer que le répertoire var était accessible en écriture mysql. J’ai donc manuellement lancé chown -R mysql /usr/local/mysql/var puis j’ai essayé de le redémarrer. Toujours pas de chance. Mais pire, pas de fichier .err dans le répertoire var – c’était dans le répertoire “data”! donc scripts / mysql_install_db configure camp dans / usr / local / mysql / var, mais le rest de l’application semble vouloir faire son travail dans / usr / local / mysql / data!

Donc, je viens d’éditer /etc/my.cnf et sous la section [mysqld] j’ai ajouté une directive pour pointer explicitement le répertoire de données de mysql vers var (comme je m’y attendais normalement), et après cela, mysqld démarre juste bien. La directive à append ressemble à ceci:

datadir = / usr / local / mysql / var

Travaillé pour moi J’espère que cela vous aide.

Pour moi, le correctif était simple:

 top 

a montré que mysqld était déjà en cours d’exécution

 sudo killall mysqld 

a ensuite permis au processus de démarrer

J’ai eu ce problème lors de la tentative de mise à niveau de MacOS X 10.7.5.

Malheureusement, mysql a également été mis à jour vers la version 5.6.10 de la version 5.5.14. Essayé le nouveau, n’a pas fonctionné.

J’ai décidé de revenir à mon ancienne configuration et ai fait une

 brew switch mysql 5.5.14 

Cela n’a pas résolu le problème. Ailleurs, j’ai lu et fait ceci, le tour est joué! Tout était de retour 🙂

 cd /usr/local/var/mysql mv ib_logfile0 ib_logfile0.bak mv ib_logfile1 ib_logfile1.bak 

Si aucune réponse ne vous a aidé, supprimez simplement le dossier /usr/local/var/mysql , puis installez mysql à nouveau, brew reinstall mysql .

Démarrez Mysql en mode sans échec

 /usr/local/mysql/bin/mysqld_safe start 

OU

sur MAC Terminez toute tâche mysql ou mysqld (ou autre) dans votre application Activity Monitor.

ou vérifiez votre erreur par

 tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err 

Il semble que le processus MySQL est en cours d’exécution, vous ne pouvez donc pas utiliser le port. Vous pouvez vérifier le processus MySQL en cours en utilisant la commande suivante:

ps auxf | grep mysql

Si vous obtenez un processus MySQL, tuez cet identifiant de processus en utilisant kill -9 PID, puis essayez de démarrer MySQL.

Dans mon cas, l’erreur se produit en raison du problème d’access au fichier journal des erreurs.

Les deux commandes suivantes m’aident à résoudre le problème.

 sudo chown  /usr/local/var/mysql/.err sudo chmod 666 /usr/local/var/mysql/.err 

J’espère que cela fonctionne pour vous.

Après avoir vérifié le journal des erreurs, j’ai trouvé ceci:

 120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data 120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive 120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work. 120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled. 120309 17:42:50 InnoDB: The InnoDB memory heap is disabled 120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3 120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M 120309 17:42:50 InnoDB: Completed initialization of buffer pool 120309 17:42:50 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 /usr/local/mysql/data/ib_logfile0 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation. 120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended 

Et pour le résoudre, j’ai donné les droits de propriété sur tout le dossier mysql:

 cd /usr/local sudo chown mysql mysql sudo chown mysql mysql-5.5.21-osx10.6-x86_64 sudo chown _mysql mysql sudo chown _mysql mysql-5.5.21-osx10.6-x86_64 

Ensuite (vous pouvez aussi le faire en ligne de commande), j’ai appliqué les permissions (une fois que j’ai donné cette propriété à _mysql et aux utilisateurs de mysql ) à tous les dossiers inclus dans le menu “get info” du dossier / usr / local / mysql -5.5.21-osx10.6-x86_64 . Vous n’avez pas besoin de cela pour l’alias puisque ce n’est qu’un alias.

Le nom du dossier dépend de la version d’installation de mysql que vous avez.

Avait le même problème, pour moi, il faisait une suppression de armsage tout en ayant une installation précédente de mysqld en cours d’exécution. Semble que brew n’arrête pas un service avant la désinstallation.

Après avoir vérifié le fichier .err, j’ai vu l’erreur enregistrée qu’une autre copie de mysql pouvait être en cours d’exécution, après la fin de l’ancien service. J’ai ensuite pu redémarrer l’installation de mysql.

Essaye ça..

  1. Accédez au répertoire parent du problème cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (supprime le fichier)
  3. touch YOURUSERNAME.local.pid (génère un nouveau fichier * .local.pid dont l’erreur s’est plaint)
  4. retournez dans votre projet et redémarrez mysql en utilisant mysql.server start

À l’aide de quelques réponses affichées ici, j’ai pu trouver le problème

D’abord je cours

sudo -i

Je pourrais donc avoir un access root.

Que j’ai supprimé le fichier xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

après avoir démarré MySQL dans SafeMode

/usr/local/mysql/bin/mysqld_safe start

Il essaiera de démarrer et se fermera à cause d’une erreur … un nouveau fichier xxx.err sera créé et vous devrez le lire pour voir la cause de l’erreur

tail -f /usr/local/mysql/data/mysqld.local.err

Dans mon cas, pour une raison quelconque, il manquait un dossier et un fichier dans /var/log/ folder … J’ai donc créé les deux

cd /var/log

mkdir mysql

touch mysql-bin.index

Après la création du nouveau fichier, vous devez modifier l’autorisation

chown -R _mysql /var/log/mysql

Lorsque toutes ces étapes ont été sockets, ma firebase database a commencé à fonctionner immédiatement …

J’espère que cela peut aider les autres ici … La clé est de lire l’erreur et de vous connecter et de trouver ce qui ne va pas …

Essayez de supprimer les fichiers ib_logfile0 et ib_logfile1 , puis exécutez à nouveau mysql

 rm /usr/local/var/mysql/ib_logfile0 rm /usr/local/var/mysql/ib_logfile1 

Ça marche pour moi.

J’ai eu le même problème. déplacer mon fichier /etc/my.cnf a fonctionné pour moi. J’ai l’information ici

Simple….

Corriger l’erreur 2002 MySQL Socket

Corrige l’erreur imminente de socket 2002 – qui lie où MySQL place le socket et où OSX le pense, MySQL le place dans / tmp et OSX le recherche dans / var / mysql le socket est un type de fichier qui permet au client mysql / communication serveur

Sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Bien joué : )

Cela m’aide beaucoup! J’ai pris ce guide des gars sur http://coolestguidesontheplanet.com/

Le problème est une autorisation, il ne peut pas démarrer car il ne peut pas écrire sur mac.err car il appartient à quelqu’un d’autre.

Assurez-vous que le dossier / usr / local / var / mysql appartient à l’utilisateur qui démarrera mysql. Si je lance mysql comme jack c’est tout bon. Cependant, si vous le lancez en tant que root, cela créera un fichier mac.err (possédé par root) sur lequel jack ne pourra pas écrire, aussi, lorsque vous essayez de le redémarrer en tant que jack, cela échouera.

  1. Assurez-vous que le dossier et les fichiers appartiennent à l’utilisateur exécutant mysql.server start
  2. Assurez-vous qu’il n’y a pas déjà un mac.err ou un mac.pid appartenant à quelqu’un d’autre.
  3. Start est le bon utilisateur.

Que dit le journal des erreurs? J’ai eu cette erreur, qui a fini par être un vieux paramètre invalide dans le fichier my.cnf, indiqué par le journal des erreurs mysql. Si ce n’est pas un mauvais paramètre de configuration, le journal des erreurs devrait au moins vous indiquer la bonne direction.

Eh bien, je suppose que le PO a résolu le problème à ce stade … mais heureusement, cela montre les autres qui voient cette erreur dans la bonne direction.

Vérifiez si vous avez de la place dans votre lecteur. J’ai ce problème quand il ne rest plus d’espace dans mon lecteur.

Dans mon cas, lorsque j’ai essayé de démarrer MySQL, j’ai reçu la même erreur: The server quit without updating PID file . C’est ce que j’ai fait pour le réparer (en utilisant Terminal):

 goto /usr/local/var/mysql sudo rm -rf hostname.err # Delete .err file cd /usr/local/mysql/support-files sudo mysql.server start # Success! 

Supprimer les fichiers * .err que vous trouvez dans le répertoire affiché dans l’erreur et créer le fichier dont se plaint mysql, redémarrez mysql.

Déplacez le fichier journal nommé “ib_logfile” dans “/ var / lib / mysql” et redémarrez mysql. Parfois, mysql échouera car il est difficile de mettre à jour le fichier journal

 mv /var/lib/mysql/ib_logfile* /some/tmp/folder/ 

Vous pouvez également supprimer ib_logfile car il sera créé automatiquement après le redémarrage de mysql

maintenant redémarrer le serveur mysql