#はじめに
mysql.server start
やmysql.server restart
の際に出るエラー、
ERROR! The server quit without updating PID file
このエラーにかなり手こずりました。
・PCを再起動する
・touchコマンドでPIDファイルを作る
・ファイルの権限を変更する
・MySQLをアンインストールしインストールし直す
ググッて調べた上記の方法がどれも上手くいかず途方にくれていましたが、
何とか解決できたので忘備録を兼ねて解決方法をまとめておきます。
#解決方法
###①
まずはエラー解決の過程でMySQLのインストールとアンインストール繰り返してしまい、
MySQLのpathを増やしすぎてしまったので、増えすぎたpathを整理する。
% cat .zshrc
#.zshrcファイルの中身を表示
####実行結果
eval "$(rbenv init -)"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
eval "$(nodenv init -)"
export PATH="/usr/local/opt/node@14/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
MySQL5.6とMySQL5.7のpathが多すぎるので整理する。
VSコードを使ってpathを整理する時は新規ウィンドウを立ち上げ、
「コマンド+O」でホームディレクトリを選択。
ホームディレクトリの「.zshrcファイル」の中身を編集しMySQLのpathを一つに減らす。
####.zshrcファイル編集後
eval "$(rbenv init -)"
eval "$(nodenv init -)"
export PATH="/usr/local/opt/node@14/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
その後、下記のコマンドで編集を保存する。
% source .zshrc
###②
次に不要なプロセスを確認します。
varディレクトリに移動しpsコマンドを実行。
var % ps -e | grep mysql
###実行結果
534 ?? 0:00.03 /bin/sh /usr/local/opt/mysql@5.7/bin/mysqld_safe --datadir=/usr/local/var/mysql
638 ?? 0:11.43 /usr/local/opt/mysql@5.7/bin/mysqld --basedir=/usr/local/opt/mysql@5.7
インストールしているMySQLのバージョンは@5.6なのに、@5.7のプロセスが残っていました。
これがエラーの原因であり、これをkillしてあげると解消されるはず。
var % kill 534
var % kill 638
これで不要なプロセスをkillすることができました。
% mysql.server start
Starting MySQL
. SUCCESS!
改めてmysql.server start
すると上手く行きました。
#終わりに
MySQLは予期せぬエラーが多いとのことで、
MtSQLが立ち上がらない系のエラーはpathやプロセスをチェックするのがいいのかもしれません。