brewでインストールしたmysqlが起動しなくなってしまいました。
調べて上位に出てくる方法では解決できなかったのでメモしておきます。
TL;DR
アップグレードに失敗していたので、下記で解消
mysqld --upgrade=MINIMAL
前提
$ mysql -V
mysql Ver 8.0.31 for macos13.0 on arm64 (Homebrew)
状況
mysql -u root
すると、
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sudo mysql.server start
すると、
ERROR! The server quit without updating PID file
と言われた。
ps aux | grep mysql
すると、そもそも起動していない様子
思い当たること
brew upgrade
した
試したけどダメだったこと
/tmp/mysql.sock
を作る
sudo touch /tmp/mysql.sock
PIDファイルを作る
touch /opt/homebrew/var/mysql/***.local.pid
PIDファイルの所有権を変える
sudo chown -R _mysql:_mysql /opt/homebrew/var/mysql/
エラー内容で検索すると出てくるのはこの辺りかな、と思います
解決策
ちゃんとエラーを見てみます
less /opt/homebrew/var/mysql/***.local.err
2023-01-12T13:10:56.863867Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /opt/homebrew/var/mysql/ is case insensitive
2023-01-12T13:10:57.087353Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-12T13:11:44.613924Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-12T13:11:48.080019Z 4 [System] [MY-013381] [Server] Server upgrade from '80030' to '80031' started.
2023-01-12T13:12:13.662641Z 4 [ERROR] [MY-013178] [Server] Execution of server-side SQL statement 'INSERT IGNORE INTO mysql.db VALUES ('localhost', 'performance_schema', 'mysql.session','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N'); ' failed with error code = 1136, error message = 'Column count doesn't match value count at row 1'.
2023-01-12T13:12:13.664626Z 0 [ERROR] [MY-013380] [Server] Failed to upgrade server.
2023-01-12T13:12:13.664640Z 0 [ERROR] [MY-010119] [Server] Aborting
アップグレードしようとして、何やら失敗しているようです
一旦アップグレードせずに起動する方法を探したところ、下記で不要なパフォーマンススキーマのアップグレードを回避できそうです
参考:https://dev.mysql.com/doc/refman/8.0/ja/upgrading-what-is-upgraded.html
mysqld --upgrade=MINIMAL
一度上記コマンドで実行したところ、その後は普通にmysql -u root
でアクセスできるようになりました。