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.
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
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!
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
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
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
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.
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.
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).