« App::Xaicron構想 | メイン | carton execでTest::mysqldが起動できなくて泣いた »

2013年3月12日

おもむろにbrew upgrade mysqlしたらTest::mysqldが起動しなくなって泣いた

*** mysql_install_db failed *** FATAL ERROR: Could not find my-default.cnf

If you compiled from source, you need to run ‘make install’ to copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top level of the extracted archive, or pass the —basedir option pointing to that location.

5.5から5.6に上がったので、なんか壊れちゃったかなーと思ったけど、 mysql自体は起動するので、どうもhomebrewとTest::mysqldの相性の問題であった。

Test::mysqldではmysql_install_dbコマンドの場所からmysqlインストールパスを探しているようなの だけど、homebrewだとwhich mysql_install_dbで返ってくる /usr/local/bin/mysql_install_db は単なるシンボリックリンクなので、そのへんでうまくいっていない模様。

なんか、

% ls /usr/local/Cellar/mysql
5.5.28/ 5.6.10/

とかなっていて、5.5のプログラム自体残っていたので、それが影響しているのかなーと思いきや、 エイヤッとrm -rf 5.5.28してもコケたままなので、なんでそもそも動いていたのかが謎い。

とりあえず、実行ファイルがシンボリックリンクだったら、readlink呼んで実体パスの 解決を行うようにしたら動くようになったので、とりあえずpullreq送らせてもらった。

Test::mysqlのCPANTesters見たら 見事にオールグリーンで自分の環境が悪いのかと一瞬怯んだけどdarwinはなかったので安心(?)した。

ちなみにreadlinkとか初めて使ったというか知らなかった。

追記:ちょっと調整して取り込んでもらった!ありがとうございます!

投稿者 Songmu : 2013年3月12日 15:24