web-dev-qa-db-fra.com

Erreur PID au démarrage de mysql.server?

Je viens d'essayer d'installer MySQL en utilisant homebrew (sur Mac OS X 10.6), mais j'ai rencontré un problème au premier obstacle. Lorsque j'essaie de démarrer manuellement le serveur (mysql.server start), j'obtiens l'erreur suivante:

. ERROR! Manager of pid-file quit without updating file.

Malheureusement, je ne suis pas sûr des journaux d'erreurs ou des fichiers de configuration à vérifier, car je n'ai jamais installé MySQL de cette manière auparavant.

32
joecritch

J'ai rencontré ce même problème lors de l'installation via homebrew. Assurez-vous d'exécuter ces commandes (qui sont répertoriées lors de l'installation mais faciles à manquer):

unset TMPDIR
mysql_install_db
33
Mike Hornblade

vous devez probablement vous assurer que vous exécutez mysql en tant qu'utilisateur root - sinon il n'aura pas la permission d'écrire le fichier PID (d'où l'erreur que vous recevez).

Essaye ça:

Sudo mysql.server start

vous serez invité à saisir votre mot de passe. (cela suppose que votre compte d'utilisateur dispose d'autorisations pour "Sudo" - ce qu'il devrait, à moins qu'il ne soit configuré en tant que compte d'utilisateur restreint dans OS X).

Ce n'est peut-être pas le seul problème - mais cela devrait vous permettre de passer à l'étape suivante de toute façon.

bonne chance!

16
Lee

Ces deux commandes suivantes devraient résoudre votre problème.

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

J'ai rencontré le même problème en essayant d'installer MySQL 5.5.15 dans Lion en utilisant homebrew et j'ai résolu le problème avec:

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

et créer un fichier ~/my.cnf

avec le contenu:

 [mysqld]
   basedir=/usr/local/Cellar/mysql/5.5.15
   datadir=/usr/local/var/mysql

basedir - devrait être votre répertoire d'installation actuel de MySQL datadir - devrait être l'emplacement des données MySQL

Vous pouvez également comprendre cet emplacement en regardant la commande make pendant la "brew install mysql" à la recherche de quelque chose comme ceci:

-DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/mysql/5.5.15 -DMYSQL_DATADIR=/usr/local/var/mysql -DINSTALL_MANDIR=/usr/local/Cellar/mysql

Où DCMAKE_INSTALL_PREFIX = basedir et DMYSQL_DATADIR = datadir

6
lmmendes

Rien d'autre n'a vraiment aidé, mais ce qui suit a fonctionné:

$ ps aux | grep mysql
tagir           27260   0.0  1.0  3562356 175120   ??  S     2:52PM   0:00.42 mysqld --skip-grant-tables
tagir           42704   0.0  0.0  2434840    784 s000  S+    3:04PM   0:00.00 grep mysql
$ kill 27260
# Careful! This might erase your existing data
$ rm -rf /usr/local/var/mysql
$ mysqld --initialize
$ mysql.server start
5
Grozz

J'ajoute ceci ici parce que j'ai rencontré ce problème plusieurs fois après l'installation d'autres logiciels. MySQL fonctionnait bien pendant des jours, puis tout à coup, je reçois cette erreur.

Cela semble se produire lorsque j'installe quelque chose (par exemple, elasticsearch ou le serveur Web Puma). Les autorisations MySql sont à nouveau annulées (pour moi, et non _mysql). Je ne sais pas pourquoi.

  • MacOS Sierra
  • Homebrew 1.0.5-43-g41b2df8 (2016-10-02)
  • MySQL 5.7.15

J'ai donc constaté que l'une des causes de cela est les autorisations sur l'emplacement où MySQL stocke vos bases de données, qui par défaut est ici:

/usr/local/var/mysql

Si vous regardez dans ce dossier, vous verrez un fichier

<your computer name>.err

Si vous regardez à l'intérieur de ce fichier (more it ou cat it), vous verrez probablement cette erreur:

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

Si c'est le cas, vous savez que c'est un problème d'autorisations.

Si vous ne vous en souciez pas, vous pouvez probablement simplement exécuter MySQL en exécutant simplement mysqld (et laisser ce terminal ouvert).

Si vous vous en souciez:

ls -al /usr/local/var/mysql

vous remarquerez que les autorisations sont probablement toutes définies pour vous (votre compte utilisateur). Cela signifie que mysql ne peut pas monter vos bases de données lorsque vous l'exécutez à l'aide du raccourci homebrew Sudo mysql.server start [même si vous utilisez Sudo pour exécuter en mode "admin"].

Modifiez donc les autorisations:

$ Sudo chown -R _mysql /usr/local/var/mysql
$ Sudo chmod -R o+rwx /usr/local/var/mysql

Ensuite, cela fonctionnera.

3
rmcsharry

Il semble que pour une raison quelconque, je ne puisse pas commenter ci-dessous Immendes ci-dessus, mais sur 10.8.2 avec mySQL 5.6.10, en plus de vérifier le db_install et d'ajouter le my.cnf, j'ai également dû chown -R myusername/tmp/mysql.sock.

Il semble que permettre à mySQL de fonctionner sous l'utilisateur (comme apposé sur root ou www comme je le ferais sur linux) n'est pas la meilleure idée à cet égard (bien que Homebrew puisse mettre à jour la formule - au-delà de ma portée et de mon temps).

1
Paul Fox