やったこと
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
詳細
以下やったことを順に記載していきます。
再インストール
以下記事参考にして以下を実行。
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。
エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
- 作者:奥野 幹也
- 発売日: 2010/06/12
- メディア: 大型本