MySQL が "Manager of pid-file quit without updating file." と表示して起動しなくなった場合の対応
実行環境を書いてしまうと特定されてしまうので端折るから「?」な部分もあるけど,いろいろ調べたのでメモメモ.
まず,上記のエラーメッセージを吐いて起動しなくなる原因は,主に4つあるとのこと.
1は見直せばよいとして,2に関してはちょっと強引だけど
# find / -name *.pid
で探せるし,3も
# ps ax | grep mysql
で探せる.
エラーメッセージが表示されたあとに,find も ps もしてみたけど,引っかかるファイルもプロセスもなかった.なので,4ということになる.加えて,"mysql_install_db" を実行したときに「"skip-federated" なんてオプション知らないよ」と MySQL に怒られるのでますます設定ファイルを疑う.
設定ファイル(/etc/my.cnf)を以下のようにして "skip-federated" をコメントアウトし,
[ /etc/my.cnf ]
:
#skip-federated
:
MySQL を起動してみると,今度は InnoDB に関する設定についてのエラーメッセージを吐くようになった.↑と同様に「そんなオプションは知らない」と言うのだ.そこで,MySQL をインストールしたときの configure オプションを見直すと,なんと InnoDB を有効にするような設定になっていなかったことが判明(ここで新たに,今まで InnoDB なテーブルが作成できていたことが謎になってしまった).
というわけで,InnoDB を有効にする設定で configure → make → make install をして再インストール.
再インストール後も,「"skip-federated" なんてオプション知らないよ」と言われるので,同じようにコメントアウト.InnoDB に関する設定は有効にしたままに.これで,"mysql_install_db" も出来るし,MySQL も起動するようになった.
根本は人為的な問題なんだけどそれは書けないので...とりあえず調査内容と対応は残せるのでいいとしよう.勉強になった.
#今まで InnoDB なテーブルを作成出来ていた謎は未解決.