AnDeriensのブログ

個人的なブログです

MacでMySQLが立ち上がらない問題にハマったときの対処ログ

やったこと

MySQL再インストール・再設定

ハマったこと

エラーログに出力される

[ERROR] [MY-011011] [Server] Failed to find valid data directory.
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

に対する対処がネットを調べてもあんまり情報出てこなかった。いちおうTablePlusのissueに似たようなのがあり、それを参考にしたら解決しました。(initialize)

Can't start mysql: Failed to find valid data directory · Issue #18 · TablePlus/DBngin · GitHub

詳細

再インストール

以下記事参考。

The server quit without updating PID file mysqlエラー解決方法 - Qiita

起動しようとしてみるが失敗。

$ mysql.server start
Starting MySQL
./usr/local/Cellar/mysql/8.0.22/bin/mysqld_safe: line 653: /usr/local/var/mysql/*******.local.err: No such file or directory
Logging to '/usr/local/var/mysql/*******.local.err'.
/usr/local/Cellar/mysql/8.0.22/bin/mysqld_safe: line 144: /usr/local/var/mysql/*******.local.err: No such file or directory
/usr/local/Cellar/mysql/8.0.22/bin/mysqld_safe: line 199: /usr/local/var/mysql/*******.local.err: No such file or directory
/usr/local/Cellar/mysql/8.0.22/bin/mysqld_safe: line 916: /usr/local/var/mysql/*******.local.err: No such file or directory
/usr/local/Cellar/mysql/8.0.22/bin/mysqld_safe: line 144: /usr/local/var/mysql/*******.local.err: No such file or directory
 ERROR! The server quit without updating PID file (/usr/local/var/mysql/*******.local.pid).

/usr/local/var/mysqlがなかったので作成。 pidファイルも作成する。

$ sudo mkdir /usr/local/var/mysql
$ sudo touch /usr/local/var/mysql/*******.local.pid

再度起動

$ mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/AnDeriens-MBP.local.pid).

失敗したけどログが出たっぽいので確認

2020-11-03T09:01:12.410342Z 0 [System] [MY-010116] [Server] /usr/local/Cellar/mysql/8.0.22/bin/mysqld (mysqld 8.0.22) starting as proces
s 14464
2020-11-03T09:01:12.413376Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mys
ql/ is case insensitive
2020-11-03T09:01:12.425775Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2020-11-03T09:01:12.425892Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-11-03T09:01:12.425968Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-11-03T09:01:12.426311Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.22/bin/mysqld: Shutdown complete (mysqld 8.0.22)  Homebrew.
2020-11-03T09:02:46.6NZ mysqld_safe Logging to '/usr/local/var/mysql/*******.local.err'.

datadirがおかしいみたい。

ひとまず、my.cnfにdatadirの設定をする。

+ datadir = /usr/local/var/mysql/data

initialize時にrootユーザーのパスワード発行されるので注意。

$ mysqld --initialize --console

再度起動

$ mysql.server start
Starting MySQL
. SUCCESS!

成功!!!

$ mysql -u root -p

でログインできました。OK。