発生した背景
MySQLサービスがまたもやエラー。何回も発生すると、流石に時間の浪費に怯えてしまいます。以下エラー内容になります。
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
環境
項目 | 内容 |
---|---|
OS.Catalina | v10.15.4 |
Ruby | v2.5.1 |
Ruby On Rails | v5.2.4.3 |
MySQL | v5.6 |
対応手順
【調査1】MySQLが起動しているか。
僕は「SequelPro」を使っているので、接続してみる。→接続エラー
プロセスの稼働状況を確認
CMD>ps -ef | grep mysql
501 1287 1 0 11:45AM ?? 0:00.06 /bin/sh /usr/local/opt/mysql@5.6/bin/mysqld_safe --datadir=/usr/local/var/mysql
501 6400 1287 0 11:55AM ?? 0:00.51 /usr/local/opt/mysql@5.6/bin/mysqld --basedir=/usr/local/opt/mysql@5.6 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql@5.6/lib/plugin --log-error=ichikawadaisukenoMacBook-Air.local.err --pid-file=ichikawadaisukenoMacBook-Air.local.pid
501 6402 804 0 11:55AM ttys000 0:00.01 grep mysql
!?稼働しているようには見える!?
【調査2】まずはエラー内容から。ソケットファイルがないと言われているので、以下のコマンドで対応してみました。
ソケットファイルを試しに作成してみる。
CMD>cd アプリケーションフォルダ
CMD>touch /tmp/mysql.sock
→結果、改善せず。
【調査3】ログを確認してみる。
MySQLのログを確認
CMD>more /usr/local/var/mysql/ichikawadaisukenoMacBook-Air.local.err
(一部省略)
mysqld_safe A mysqld process already exists
※この後再起動するも、改善ならず。
対応
プロセスが多重起動している様子。既存の稼働中のプロセスを停止する。
プロセスの停止
CMD>kill -9 対象のサービスプロセス
今回はこれだけで改善しました。しかし、まだ以下のエラーメッセージが出力されたままです。
200616 16:04:42 mysqld_safe A mysqld process already exists
対応は後日にしようと思います。