Erreur de démarrage du serveur MySql 'le serveur quitte sans mettre à jour le fichier PID '

Sur le Léopard des Neiges, à partir de MySQL donne l'erreur suivante:

le serveur quitte sans mettre à jour le fichier PID

mon.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
241
demandé sur Benjamin 2011-02-11 00:51:15

30 réponses

essayez de trouver votre fichier de log avec le suffixe ".err", il devrait y avoir plus d'info. Il pourrait être dans:

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

c'est probablement un problème avec les permissions

  1. vérifiez 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

    kill -9 PID

    PID est le nombre affiché à côté du nom d'utilisateur sur la 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 elle est propriétaire par root vous devez la changer mysql ou your_user

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

249
répondu Tombart 2014-05-23 08:20:32

avez-vous suivi les instructions de brew install mysql ?

mettre en place des bases de données pour fonctionner comme 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 autre utilisateur pour exécuter mysqld, voir l'aide pour mysqld_install_db :

mysql_install_db --help

et visualiser la documentation de MySQL:

pour exécuter comme, par exemple, l'utilisateur "mysql", vous pouvez avoir besoin de sudo :

sudo mysql_install_db ...options...

Démarrer mysqld manuellement avec:

mysql.server start

Note: si cela échoue, vous avez probablement oublié d'exécuter les deux premiers pas au-dessus de

191
répondu svs 2016-01-21 16:42:43

j'avais le même problème sur ma machine Mac (j'ai correctement suivi toutes les étapes d'installation suggérées par brew install ).

suppression du fichier d'erreur 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 était la propriété de _mysql:wheel au lieu de mon propre nom d'utilisateur. Le fait de déchiffrer le fichier d'erreur l'aurait probablement corrigé lui aussi.

125
répondu ukliviu 2013-03-25 09:46:47

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

 sudo chown -R _mysql /usr/local/var/mysql
75
répondu Sam Ruberti 2013-08-23 14:15:10

ça a marché 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 ...

puis tuer tous les processus énumérés à partir de la commande ci-dessus en utilisant ce qui suit:

$ sudo kill -9 [PID]

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

le Faire pour toutes les lignes que vous voyez à la première commande.

alors vous pouvez démarrer votre Serveur MySQL:

mysql.server start
29
répondu mikoop 2015-03-16 20:34:15

mon fichier d'erreur m'a aussi dit que le port peut être utilisé par un autre processus, mais le simple fait d'exécuter sudo mysql.server start a réglé le problème pour moi.

23
répondu jaredsmith 2013-12-12 18:48:55

cette erreur peut se produire lorsque vous tentez de démarrer msql après un arrêt inadéquat.

  1. regardez le fichier journal des erreurs 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 correctement arrêter ce processus.

  2. Voir sur quel processus mysql s'exécute, utilisez cette commande: 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. terminer 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 bloque et terminer le processus après.

  1. maintenant mysql devrait démarrer sans problèmes: mysql.server start
21
répondu cosbor11 2016-01-28 19:57:04

j'ai récemment rencontré cette question, mais elle fonctionnait avant, puis s'est arrêtée.

c'était parce que j'ai commencé mysql.server comme root au lieu de moi-même.

le correctif était de supprimer le fichier journal err (qui appartenait à _mysql ). Le départ du nouveau s'est il passé.

15
répondu Roland Parnaso 2013-10-03 18:05:56

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 semble faire l'affaire. Je dirige 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/*
9
répondu Gabe 2017-04-13 12:13:44

pour moi, la solution était simple:

top

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

sudo killall mysqld 

a ensuite permis au processus de commencer

8
répondu Luke Madhanga 2016-01-07 18:18:57

si aucune réponse ne vous a aidé, retirez simplement le dossier /usr/local/var/mysql et installez mysql à nouveau brew reinstall mysql .

8
répondu user3890355 2018-02-07 02:22:36

j'utilise,

J'ai installé MySQL en utilisant homebrew ('brew install mysql'). Il a installé quelques dépendances et ensuite 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 exécuté cette commande,

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

et MySQL fonctionne.

veuillez noter que vous devez exécuter mysql_install_db à partir du niveau supérieur du répertoire mysql (i.e., usr/local/Cellar/mysql/5.5.25). En l'exécutant directement dans le répertoire /scripts ne lui donne pas assez de contexte pour qu'il fonctionne.

7
répondu westonplatter 2012-06-21 00:22:29

pour moi, la solution était de surcharger/corriger le répertoire de données dans /etc/my/cnf.

J'ai construit MySQL 5.5.27 à partir de la source 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 a produit l'erreur:

"Le serveur quitter sans la mise à jour du fichier PID"

I remarqué quelque chose d'étrange dans les instructions d'installation. Il a changé de propriétaire à mysql pour le répertoire "data", mais pas à" var"; c'est inhabituel parce que pendant des années j'ai dû m'assurer que le répertoire var était MySQL writable. J'ai donc lancé manuellement chown -R mysql /usr/local/mysql/var puis j'ai essayé de recommencer. Toujours pas de chance. Mais le pire, non .tre fichier dans le var dir - c'est dans les "données" dir! ainsi, scripts / mysql_install_db installe camp dans /usr/local/mysql / var, mais le reste de l'application semble vouloir pour faire son travail dans /usr/local/mysql/data!

donc j'ai juste édité /etc/my.cnf et dans la section [mysqld] j'ai ajouté une directive pour pointer explicitement le répertoire de données mysql vers var (comme je m'attends normalement à ce que ce soit n'importe comment), et après avoir fait cela, mysqld démarre très bien. La directive à ajouter ressemble à ceci:

datadir = / usr/local / mysql /var

travaillait pour moi. Espérons que cela aide pour vous.

7
répondu SKelly 2012-08-12 07:38:28

j'ai eu ce problème en essayant de brew upgrade sur MacOS X 10.7.5.

malheureusement mysql a également été mis à jour à 5.6.10 de 5.5.14. Essayé la nouvelle, ne fonctionne pas.

j'ai décidé de revenir à mon ancienne installation et fait un

brew switch mysql 5.5.14

cela n'a pas résolu le problème. Ailleurs j'ai lu et fait ça, voilà! Tout est revenu :)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
6
répondu cenk 2013-02-19 22:28:03

Démarrer Mysql en mode sans échec

/usr/local/mysql/bin/mysqld_safe start

ou

sur MAC à la Fin des mysql ou mysqld tâche (ou autre) dans votre application Moniteur d'Activité.

ou vérifiez votre erreur par

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
5
répondu Saurabh Chandra Patel 2015-09-09 03:26:11

il semble que le processus MySQL est en cours d'exécution donc vous n'êtes pas en mesure d'utiliser le port. Vous pouvez vérifier le processus MySQL en cours d'exécution en utilisant la commande suivante:

ps auxf / grep mysql

si vous obtenez N'importe quel processus MySQL tuer que le processus ID en utilisant kill -9 PID et puis essayer de démarrer MySQL.

4
répondu colin2328 2013-07-08 20:00:48

dans mon cas, l'erreur se produit en raison du problème d'accès au fichier journal des erreurs.

les deux commandes suivantes m'aident à résoudre le problème.

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err
4
répondu FrankSu 2017-12-07 17:17:39

essayer de supprimer ib_logfile0 et ib_logfile1 fichiers et puis exécuter mysql à nouveau

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

ça me va.

4
répondu user3890355 2018-06-01 05:40:23

j'espère que ce travail 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é des droits de propriété à l'ensemble du 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

puis (vous pouvez le faire en ligne de commande aussi), j'ai appliqué les permissions (une fois que j'ai donné cette propriété à _mysql et mysql utilisateurs) à tous les dossiers inclus dans le menu "get info" de le dossier / usr/local / mysql-5.5.21-osx10.6-x86_64 . Vous n'avez pas besoin de tho que à 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.

3
répondu lu1s 2012-03-10 02:00:36

avait le même problème, pour moi il faisait un Brew supprimer tout en ayant une installation précédente du mysqld en cours d'exécution. Seems brew n'arrête pas un service avant de le désinstaller.

après vérification du .fichier err j'ai vu l'erreur journalisée qu'une autre copie de mysql peut être en cours d'exécution, après avoir terminé l'ancien service. J'ai ensuite pu redémarrer la nouvelle installation mysql.

3
répondu Nudge 2013-06-06 11:53:05

essayez ceci..

  1. Naviguer vers le problème du répertoire parent cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (supprimer fichier)
  3. touch YOURUSERNAME.local.pid (génère un nouveau *.local.pid file the error throwned about)
  4. cd de retour dans votre projet et redémarrez mysql en utilisant mysql.server start
3
répondu Nick Sarafa 2015-04-25 03:48:32

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

j'ai d'Abord exécuter

sudo -i

pour avoir un accès root.

que j'ai supprimé le xxxx.fichier err

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

après que J'ai commencé MySQL en SafeMode

/usr/local/mysql/bin/mysqld_safe start

il essaiera de démarrer et sortira en raison d'une erreur... un nouveau xxx.le fichier err sera créé et vous devez le lire pour voir la cause de l'erreur

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

sur mon cas, pour une raison quelconque, il manquait un dossier et un fichier à l'intérieur du dossier /var/log/ ... Donc j'ai créé les deux

cd /var/log

mkdir mysql

touch mysql-bin.index

après que le nouveau fichier a été créé, que vous devez changement d'autorisation

chown -R _mysql /var/log/mysql

lorsque toutes ces mesures ont été prises, ma base de données a commencé à fonctionner immédiatement...

espérons que cela puisse aider les autres ici... La clé est de lire l'erreur et de journal et de trouver ce qui est mal...

3
répondu Paulo Griiettner 2016-08-18 17:34:42

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

2
répondu Nealv 2013-01-05 13:33:03

Simple....

Fix 2002 MySQL erreur de Socket

Correction de l'erreur de la socket 2002 qui se profile à l'horizon – qui est de lier où MySQL place la socket et où OSX pense qu'elle devrait être, MySQL la met dans /tmp et OSX la cherche dans /var/mysql la socket est un type de fichier qui permet la communication client/serveur mysql.

sudo mkdir / var/mysql

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

Bien Fait : )

ça m'aide beaucoup! j'ai pris ce guide des gars sur http://coolestguidesontheplanet.com /

2
répondu carloslozada 2014-10-25 18:48:28

le problème est un problème de permissions, il ne peut pas démarrer parce qu'il ne peut pas écrire sur mac.tre en raison de sa propriété de quelqu'un d'autre.

assurez-vous que le dossier /usr/local/var/mysql appartient à l'utilisateur qui lancera mysql. Si je commence comme jack, c'est parfait. Cependant, si vous le démarrez en tant que root, il créera un mac.err (propriété de root) fichier que jack ne peut pas écrire, donc quand vous essayez de le redémarrer comme jack, il va échouer.

  1. assurer la dossier et les fichiers sont la propriété de l'utilisateur fonctionnement de mysql.démarrage du serveur
  2. assurez-vous qu'il n'y a pas déjà un mac.tre ou mac.pid détenue par quelqu'un d'autre.
  3. Start est comme l'Utilisateur droit.
2
répondu Jack Sukerman 2015-01-21 13:28:50

que dit le journal des erreurs? J'ai eu cette erreur, et il a fini par être un vieil invalide paramètre dans le mon.cnf, indiqué par le journal des erreurs mysql. Si ce n'est pas un mauvais réglage de la configuration, le journal des erreurs devrait au moins vous pointer dans la bonne direction.

Eh bien, je suppose que L'OP l'a corrigé à ce point... mais avec un peu de chance, cela indique que les autres voient cette erreur dans la bonne direction.

1
répondu Brian Ray 2011-11-11 03:36:13

j'ai essayé de réinstaller mysql, et j'ai effectivement oublié d'arrêter le serveur de mon ancienne installation. Pour résoudre cela, ps -ax | grep mysql , puis kill [whatever PIDs] . Mais, encore une fois, c'est différent pour tout le monde. Comme les autres réponses disent, allez à /usr/local/var/mysql/ et vérifiez votre .tre fichier journal.

1
répondu Oliver 2013-01-26 02:16:47

Vérifiez s'il vous reste de l'espace dans votre lecteur. J'ai eu ce problème lorsque aucun espace n'est laissé dans ma voiture.

1
répondu thavan 2013-11-29 11:39:42

dans mon cas, quand 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 corriger (en utilisant le 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!
1
répondu Shane Zhao 2015-03-02 06:37:06

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

1
répondu desveladisimo 2015-03-18 05:37:06