しょうもないMySQLエラーで手間取った件

都内への電力供給も安定化し、TDLも営業を再開したので、久々に自宅サーバを立ち上げました。

OS起動させたらどうもMySQLが動いてないっぽいので、手動で実行したら下のエラーが。

Starting MySQL. ERROR! Manager of pid-file quit without updating file.

直訳すると、pidファイルを更新する前にファイルが移動されたと言ってるぽい。
しかもメッセージが画面にリダイレクトされるのに、エラーファイルには何も吐かれてないし。
ううむ。。。

とりあえず疑わしきはmy.cnfということで、my.cnfをチェック。
このサーバはバージョン違いのMySQLを何度か入れたので、/etcではなく$MYSQL_HOMEにmy.cnfがある。
しかし開いてみてもpid-fileパスは特に指定してない。
指定してない場合、$MYSQL_HOMEに出来るはずなので、確認してみる。

# ll /usr/local/mysql5.1/data/server.err

  • rw-rw---- 1 mysql root 4216 Apr 18 00:29 /usr/local/mysql5.1/data/server.pid

ちゃんとあるわよねえ。。。

とりあえずぐぐってみると、ibdataを消したらできましただの、再インストールしたら出来ました。だの役に立たない解決法しかヒットしないorz

集中力が途切れたので小一時間ほどtokyo-tubeを眺めていると、まさか見てるmy.cnfが違うんじゃない?という神の啓示が聞こえたので早速調べる。

$ ll /etc/my.cnf

  • rw-r--r-- 1 root root 849 Jun 12 2009 /etc/my.cnf

orz

MySQLは起動時に読みに行くmy.cnfに順番があって、/etc配下は何より優先されるのは基本中の基本。
/etc/my.cnfをリネームしたら正常に起動しました^^;

反省を込めてmy.cnfを読みに行く順番を書いておきます。

1./etc/my.cnf
2./etc/mysql/my.cnf(ただしmysql5.1以降)
3.$MYSQL_HOME配下
4.--defaults-extra-fileオプションに指定したファイル
5.$HOME/.my.cnf
6.DEFAULT_SYSCONFDIR/my.cnf

何とも素人以下のミスをしたもんだぜ。。。