The server quit without updating PID fileというエラーが出て、ローカルmysqlサーバが起動しない

qiita.com

この記事などにあるように、/usr/local/var/mysql以下をchownしたものの、同じエラーが出続けていました。

$ sudo chown -R mnmandahalf /usr/local/var/mysql/
Password:
$ mysql.server start
Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mnmandahalfs-MacBook-Pro.local.pid).

煮詰まったので何気なくpidファイルを作って、再度サーバーを立ち上げてみたところ、、、

$ touch /usr/local/var/mysql/Manamis-MacBook-Pro.local.pid
$ mysql.server start
Starting MySQL
.rm: /tmp/mysql.sock: Permission denied
2017-10-02T14:50:19.6NZ mysqld_safe Fatal error: Can't remove the socket file:
/tmp/mysql.sock.
Please remove the file manually and start /usr/local/Cellar/mysql/5.7.19/bin/mysqld_safe again;
mysqld daemon not started
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/Mnmandahalfs-MacBook-Pro.local.pid).

エラーメッセージが変わった。 /tmp/mysql.sockの権限を確認したところ、所有ユーザーがrootになっていました。

$ ls -la /tmp/mysql.sock
-rw-r--r--  1 root  wheel  0 10  2 22:31 /tmp/mysql.sock

メッセージの通りにmysql.sockを削除し、mysqld_safeを実行。

$ sudo rm /tmp/mysql.sock
$ /usr/local/Cellar/mysql/5.7.19/bin/mysqld_safe
2017-10-02T14:51:39.6NZ mysqld_safe Logging to '/usr/local/var/mysql/Mnmandahalfs-MacBook-Pro.local.err'.
2017-10-02T14:51:40.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql

別プロセスからmysql.sockの権限を確認。

$ ls -la /tmp/mysql.sock
 srwxrwxrwx  1 mnmandahalf  wheel  0 10  2 23:52 /tmp/mysql.sock

多分この権限と/usr/local/var/mysql/以下の権限を最初に揃えておけばよかった?

mysqldも立ち上がった模様。

$ ps aux | grep mysql
mnmandahalf           72116   0.0  0.0  2435000   1228 s004  R+   11:55PM   0:00.01 grep mysql
mnmandahalf           72096   0.0  2.1  2836108 177372   ??  S    11:51PM   0:00.42 /usr/local/Cellar/mysql/5.7.19/bin/mysqld --
basedir=/usr/local/Cellar/mysql/5.7.19 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.7.19/lib/plugin --
log-error=Mnmandahalfs-MacBook-Pro.local.err --pid-file=Mnmandahalfs-MacBook-Pro.local.pid
manami           72024   0.0  0.0  2438664   1972   ??  S    11:51PM   0:00.03 /bin/sh 
/usr/local/Cellar/mysql/5.7.19/bin/mysqld_safe

ログインできました。

$ mysql -u root -p
Enter password: