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とか初めて使ったというか知らなかった。
追記:ちょっと調整して取り込んでもらった!ありがとうございます!