MySQLを起動できないエラーを解決した。

MySQLが起動しない

~ $ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (38)

参照した記事

mysqlが起動できなくなって試行錯誤の末に再インストールした話

MySQLをインストールし直す

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
brew uninstall mysql

PCを再起動し、mysql -u rootcommand not foundになることを確認。

改めて、MySQLをインストール

brew install mysql

すると、インストールは完了したが、エラーが表示される。post-install stepが完了しなかったとのこと。

2020-03-22T07:26:40.099179Z 0 [System] [MY-013169] [Server] /usr/local/Cellar/mysql/8.0.19/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 2421
2020-03-22T07:26:40.100912Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2020-03-22T07:26:41.006686Z 0 [ERROR] [MY-010361] [Server] Fatal error: Illegal or unknown default time zone 'Asia/Tokyo'
2020-03-22T07:26:41.006870Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql/ is unusable. You can remove all files that the server added to it.
2020-03-22T07:26:41.007153Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-03-22T07:26:41.691456Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.19/bin/mysqld: Shutdown complete (mysqld 8.0.19)  Homebrew.
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall mysql`

[ERROR] [MY-010361] [Server] Fatal error: Illegal or unknown default time zone 'Asia/Tokyo'と出ている。Timezoneの設定をmy.cnfから削除する必要がある。

mysql --verbose --help | grep my.cnf
#/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

それぞれのmy.cnfを確認しタイムゾーンの設定を見つけ、削除する。

brew postinstall mysql実行すると、エラーが出ずに完了。

~ $ brew postinstall mysql
==> Postinstalling mysql
==> /usr/local/Cellar/mysql/8.0.19/bin/mysqld --initialize-insecure --user=bupol

これでMySQLを実行できるか?と思ったが、まだできない

~ $ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (38)

~ $ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/fuwaakiras-MacBook-puro.local.pid).

エラーメッセージを確認する

~ $ cat /usr/local/var/mysql/xxxxxx-MacBook-puro.local.err

# 省略...
2020-03-22T07:29:59.932031Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /var/lib/mysql/mysql.sock.lock.
2020-03-22T07:29:59.932330Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2020-03-22T07:29:59.932835Z 0 [ERROR] [MY-010119] [Server] Aborting
# 省略...

Unable to setup unix socket lock file.で検索すると、これは所有権の問題らしい。

所有権を自分のユーザ名に変更

~ $ sudo chown username /var/lib/mysql

やっとMySQLを実行できた!!

~ $ mysql.server start
Starting MySQL
. SUCCESS!