12
15

More than 3 years have passed since last update.

【The server quit without updating PID file 】を解決する(参照多め)

Last updated at Posted at 2020-01-05

昨日まで使えていたMysqlが、唐突に起動しなくなったため備忘録として、今後も使えるよう参照を多めにして残します。
初心者向けです。

環境

mysql Ver 8.0.17
Rails 5.2.4

はじめに

昨晩までRailsで開発しており、起床して作業しようとするとRails s が出来ない。PCが何故か再起動されていた(普段はスリープ)
こんなことはよくある話で、PCを再起動したりするとmysqlを再起動させる必要があります。

mysql.server restart

で大抵直るのが大半。以後、msrと書きます。

Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/[ユーザー名].local.pid).

とのエラーが発生😨

考えられる原因

参照 : The server quit without updating PID file mysqlエラー解決方法

こちらのエラーの出現理由ですが、mysqlのバージョン切り替え時に出現すると思われます。
私はmysqlを使っていたので、brewのupdateを行った際にmysqlがアップデートされてしまいました。
mysqlのバージョンを切り替え → 前のmysqlバージョンで使用したデータを使って起動した時に出るようです。

参照 : mysql 起動時のThe server quit without updating PID file エラーの回避法

そもそもpidファイルが存在していない。
pidファイルに適切な権限が設定されていない

私の場合、特にupdateしたわけでもないので原因は未だ謎ですが、もしupdateした場合は下記の内容以外にも試す必要がありそうです。

解決しなかった方法

【1】PC再起動

とりあえず、PCを再起動してみる。結構これで直ること(mysqlに関わらず)もあるのでとりあえず試してみます。

msrしてみても
下記全部試すもエラー文変わらず。

mysql.server restart
mysql.server start
sudo mysql.server restart → sudoは 「superuser root doの訳」

【2】PID fileを作成

参照 : MySQL起動できなくなった The server quit without updating PID file

エラー文から、どうやら「mysql配下のpidがないよ」と言われているので、

cd/usr/local/var/mysqlまで潜りlsで確認。

その後、findコマンドで検索。(ご自身のユーザー名「uname -nで確認可能できる」で検索してください)

[PC名] mysql % find [PC名].local.pid
find: [PC名].local.pid: No such file or directory

ファイルがないと言われているので、一旦作成してみる。(PC名は、[PC名].local.errがあるはずなのでそのPC名のところです)

[PC名] mysql $ touch /[PC名].local.pid

またmsr してみる
エラー文変わらず。
vim [PC名].local.pid で確認しても空のファイルなので、何か記載がいるんだろうと推測するも解決には至らず。
ちなみに、errの方にはぎっしり色々書いてある。

【3】権限変更

参照 : mysql起動で「The server quit without updating PID file」

下記記事を参考に、権限がなくて落ちているらしいので一旦、権限を自分からmysqlに変更してみる

[PC名] mysql $sudo chown -R _mysql:_mysql /usr/local/var/mysql

権限が変更する際にパスワードが要求されるので、入力する。
msrで試す。

ちなみに、権限が変更されてるか確認したい場合は、mysqlから一つ戻りvarの階層で

[PC名] var $ ls -l

をして mysqlのところの権限がmysqlになっていればOK。

また、権限を戻したければ下記のコマンドでもとに戻ります。

[PC名] mysql $ sudo chown -R [PC名]:_mysql /usr/local/var/mysql

【4】プロセス確認

参照 : http://tech-outlines.hateblo.jp/entry/2015/03/24/180940

Railsでもプロセスをkillすることがあるので、それで治ったらいいと期待を込め、

ps -alx | grep mysql

で試してみる。。このコマンドを打った時に走るプロセスしかない → 起動していないと解釈

 501  3679   598     4006   0  31  0  4278536    716 -      S+                  0 ttys009    0:00.00 grep mysql

結果

どうしても解決に至らず、mysqlを再インストールすることで解決しました。

12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15