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
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
-
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
où
PID
est le nombre affiché à côté du nom d'utilisateur sur la sortie de la commande précédente -
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 changermysql
ouyour_user
sudo chown-R mysql / usr/local / var/mysql /
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:
- http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
- http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
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
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.
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
ç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
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.
cette erreur peut se produire lorsque vous tentez de démarrer msql après un arrêt inadéquat.
-
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.
-
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)
- 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.
- maintenant mysql devrait démarrer sans problèmes:
mysql.server start
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é.
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/*
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
si aucune réponse ne vous a aidé, retirez simplement le dossier /usr/local/var/mysql
et installez mysql à nouveau brew reinstall mysql
.
j'utilise,
- nouveau MacBook Pro OSX 10.7.3.x
- gcc via OSX GCC Installer
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.
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.
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
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
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.
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
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.
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.
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.
essayez ceci..
- Naviguer vers le problème du répertoire parent
cd YOURPATH/usr/local/mysql
-
rm -rf *.local.err
(supprimer fichier) -
touch YOURUSERNAME.local.pid
(génère un nouveau *.local.pid file the error throwned about) - cd de retour dans votre projet et redémarrez mysql en utilisant
mysql.server start
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...
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 /
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.
- assurer la dossier et les fichiers sont la propriété de l'utilisateur fonctionnement de mysql.démarrage du serveur
- assurez-vous qu'il n'y a pas déjà un mac.tre ou mac.pid détenue par quelqu'un d'autre.
- Start est comme l'Utilisateur droit.
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.
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.
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.
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!
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.