AnDeriensのブログ

個人的なブログです

MacOSXでMySQL8.0が立ち上がらない問題にハマった

やったこと

MacOSXで、MySQLを利用しようとし、MySQL再インストール・再設定。

以下のようなエラーログが出力される。

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

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

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

詳細

以下やったことを順に記載していきます。

再インストール

以下記事参考にして以下を実行。

  • local配下のmysqlを全て削除する
  • mysqlをインストールします
  • パスを通してからサーバーを立ち上げる

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/*******.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

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