😱

【MySQL】[Mysql ERROR! The server quit without updating PID file]

2021/08/07に公開

ある日突然MySQLが動かなくなる現象が発生

  • MySQL: 5.7
$ mysql.server start

/opt/homebrew/Cellar/mysql@5.7/5.7.35/bin/mysqld_safe: line 144: /opt/homebrew/var/mysql/{マシンネーム}.local.err: Permission denied
/opt/homebrew/Cellar/mysql@5.7/5.7.35/bin/mysqld_safe: line 144: /opt/homebrew/var/mysql/{マシンネーム}.local.err: Permission denied
/opt/homebrew/Cellar/mysql@5.7/5.7.35/bin/mysqld_safe: line 198: /opt/homebrew/var/mysql/{マシンネーム}.local.err: Permission denied
/opt/homebrew/Cellar/mysql@5.7/5.7.35/bin/mysqld_safe: line 144: /opt/homebrew/var/mysql/{マシンネーム}.local.err: Permission denied
ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/{マシンネーム}.local.pid).

試してみたこと

1. 該当のファイルを見てみる

  • (/opt/homebrew/var/mysql/{マシンネーム}.local.pid)
$ cd /opt/homebrew/var/mysql
$ ls

// 該当のファイルが存在しない...
  • 該当のファイルを作ってみる
$ touch {マシンネーム}.local.pid
  • 再度起動
$ mysql.server start
  • 状況は変わらず。。。

2. むかついたのでMySQLの再インストール

$ brew uninstall mysql@5.7

$ brew install mysql@5.7
  • 再度起動
$ mysql.server start
  • 状況は変わらず。。。

  • もう一度該当のファイルを覗いてみる

$ cd /opt/homebrew/var/mysql/
$ ls

// {マシンネーム}.local.error なるものが存在している...?

3. エラーファイルを覗いてみる

$ less /opt/homebrew/var/mysql/{マシンネーム}.local.error

[ERROR] Can't start server : Bind on unix socket: Address already in use
[ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
[ERROR] Aborting

// こいつだ...!(既にソケット通信しているところに再度起動しようとした...?)
  • とりあえず該当のファイルを消してみる
$ cd /tmp
$ ls
-> mysql.sock
// いますね。こいつですね。

$ rm -f mysql.sock
-> rm: mysql.sock: Permission denied
// 権限ないとのこと。失礼しました。

$ ls -l
$ sudo rm mysql.sock
// さようなら。
  • 再度起動
$ mysql.server start

-> Starting MySQL
-> . SUCCESS!

サクセス!!!

結論

  • /tmpmysql.sock を消したら解決(根本原因は不明...)
    • これやったら解決するとの記事を発見したのでとりあえずやってみただけ。
  • そもそもソケットとかの理解が浅いので再度調べて追記します...

Discussion