ブログ


MySQL接続時に(ERROR! The server quit without updating PID file)が表示された際の対処法
こんにちは!Ry.Kです。
今回は、MySQLをmysql.server startコマンドで起動しようとした際に、The server quit without updating PID file
というエラーが表示された場合の対処法をご紹介します。
発生した環境
- MacOS
- MySQL 5.7
今回起きたエラー
MySQLを8系から5系にダウングレードした際に、MySQL起動時に以下のエラーが表示され、起動できないという事象が発生しました。
$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/****.pid).
調べてみると、MySQLのpidファイルの作成・更新ができていないことが原因でこの事象が起きることが多いようです。
参考にさせていただいたサイトは以下の2つになります。
- mysql 起動時のThe server quit without updating PID file エラーの回避法
- MySQLが起動しない(The server quit without updating PID file ~~~)
そもそもpidファイルとは?
pidファイルとは、MySQLの起動時に自身のプロセスIDを記録するファイルです。このファイルが存在することで、システムはMySQLサーバーのプロセスを識別できるようになります。
また、MySQLの起動や停止・管理などもこちらのファイルを参照して行われます。
解決方法
私の環境では、下記の手順を踏むことで、MySQLが起動するようになりました。
まず、/usr/local/var/mysql配下にpidファイルが存在するかを確認します。(パスは適宜読み替えてください)
$ ls -l /usr/local/var/mysql/*****.local.pid
ls: /usr/local/var/mysql/*****.local.pid: No such file or directory
ここでpidファイルが存在していなかったため、以下のコマンドで空のpidファイルを作成しました。
私は、*****はuname -n
で確認することができるマシンのホスト名を入力して作成しました。
$ touch /usr/local/var/mysql/*****.local.pid
pidファイル作成後にもう一度起動できるかどうか確認しましたが、同じエラーが出てしまい起動することができませんでした。
更に調べてみると、pidファイルが存在している場合でも、適切な権限が設定されていない場合はエラーになるようなので、以下のコマンドを使用し、/user/local/var/mysql配下のファイルの所有者をすべて_mysqlに変更しました。
$ sudo chown -R _mysql:_mysql /usr/local/var/mysql/
権限設定後に再度起動できるかどうか確認します。
$ mysql.server start
Starting MySQL
..SUCCESS!
無事に起動することができました。
その他の方法
今回紹介した方法で解決しない場合は、MySQL関係の動いているプロセスを終了させることで解決できる場合もあるようです。
まず、以下のコマンドで実行中のMySQLに関係するプロセスを確認します。
$ ps -ef | grep mysql
次に、起動しているプロセスを手動で強制的に終了させます。*****は表示されたPID(プロセスID)を入力してください。
$ sudo kill -9 *****
プロセス終了後に以下のコマンドでMySQLが起動するか確認を行います。
$ mysql.server start
まとめ
今回はMySQL起動時のThe server quit without updating PID fileエラーについての対処法についてまとめてみました。
私の環境では、以上のようにpidファイルを作成し、適切な権限を設定することで、この問題を解決することができました。
ご参考になりましたら幸いです。
株式会社ウイングドアは福岡のシステム開発会社です。
現在、私達と一緒に"楽しく仕事が出来る仲間"として、新卒・中途採用を絶賛募集しています!
ウイングドアの仲間達となら楽しく仕事できるかも?と興味をもった方、
お気軽にお問い合わせ下さい!