現象
ローカルに起動中のmysqlにrailsから接続し、db:migrateなどの重めのmysql操作を実行すると、高い確率でmysqlに接続できなくなる。
~/d ❯❯❯ bundle exec rake db:migrate
rake aborted!
Mysql2::Error::ConnectionError: Lost connection to MySQL server at 'reading initial communication packet', system error: 0
上記のエラーとともにmysqlに突然繋がらなくなる。。
mysqlプロセスはどうなっているのか、確認する。
~/d ❯❯❯ mysql.server status
ERROR! Multiple MySQL running but PID file could not be found (31911 32034 )
~/d ❯❯❯ mysql.server status
ERROR! MySQL is not running
~/d ❯❯❯ mysql.server status
ERROR! MySQL is not running
~/d ❯❯❯ mysql.server start
Starting MySQL
...........................^C
「Multiple MySQL running」と出ているので、複数のmysqlが起動してしまっている??よくわからない。。
が、少し時間をおいて「mysql.server status」を実行すると、mysqlは停止している。
ならば起動しても問題ないかと思い、「mysql.server start」するも、一向に起動しない。。
~/d❯❯❯ ps aux| grep mysqld
hoge 33853 0.0 0.0 4285832 744 s007 S+ 12:15PM 0:00.00 grep --color=auto mysqld
grep以外のmysqlの文字を含むプロセスを全てkill-9して再度起動する。
~/d ❯❯❯ mysql.server start
Starting MySQL
SUCCESS!
2022-09-16T03:17:08.6NZ mysqld_safe A mysqld process already exists
起動には成功した。
mysqld_safeのプロセスが二重に起動しようとしたらしい。これはなんでだ??何か影響してたらやだなぁ。
その後の操作は異常なし。