今さら「MySQLが起動しない」エラー対処
時代はNoSQLに移りつつあるこのご時世に今さらこんなネタもアレだが、、、。久しぶりにMySQLをインストール〜起動なんちゅうことをやったら何を今さら、なミスをやらかした。
へいへい…と進めてサービスをスタートしたら、”ERROR! Manager of pid-file quit without updating file.” だと。あー、このエラーMSGって原因いろいろあるんだよな、確か。ググッたところで該当ケースに相当せず(自分の過去記事にもあった…)。install-dbを再実行するといい、と書いてあったのでやってみたがNG。エラーログが所定の場所に吐かれてないし。…が、何かのきっかけでエラーログを見つけた。定義と違う場所に吐かれていた。# sh -x /etc/init.d/mysql startでどこでつまづいているのか見てみる。あー、所定の場所にmy.cnf置いてないじゃん。アホかー!!…で、置いたけどNG。
[ERROR] Fatal error: Can’t change to run as user ‘mysql’; Please check that the user exist!’
んー、起動ユーザは違うユーザに定義しているのに、mysqlユーザで起動しようとしている?エラーログ内のMSGでも、確かに起動ユーザが二重に定義されているように見える。
[Warning] Ignoring user change to ‘hoge’ because the user was set to ‘mysql’ earlier on the command line.
※hogeは今回定義している起動ユーザ。
・・・と、しつこくあれこれ書くまでもなく、結論はインストール時に配置された/etc/my.cnfを無効にしておかなかったため。こいつをmvしたらあっさり成功。
く、くだらん・・・。しばらく出来上がっているイメージをコピーする手順でしか構築していなかったから、こういう基本的な手順が抜けていたわけである。しょうもないネタではあるが、戒めのために記録。
追記
冒頭で”NoSQL”なんて書いたが、というより今って”NewSQL”…?(汗
ぼんやりしていると浦島太郎状態だ。そんなこと中、MySQLからのフォークでクラウドに特化したDrizzleなんてのも出ていたんだね(正式版は去年の3月くらい)。MongoDBも押さえておきたいし….FlockDBも….あぁぁぁぁ….!!
あー、でもよくよく調べたらFlockDBってtwitterが開発したもので、バックエンドにはMySQLがいたんだわ。(Twitterの大規模システム運用技術、あるいはクジラの腹の中(後編))cassandraの採用を取りやめた後この構造って変わってないのかな?