Test::mysqldをmacに入れてみた。

結論

mac "ports"で入れたmysqlで、Test::mysqldは入れない方がよいかと思われます。
portsで入れていたとしても、以下より改めてmysqlを入れなおしたほうがよいと思われます。

MySQL :: Developer Zone

理由は、portsで入れた場合のmysqlのインストール先がTest::mysqldの具合のいい場所にないのです。
だので、パスの設定をしなければいけなくなってしまい面倒な為です。

パス通すからportsでいれたまんまのmysqlで行きたい!というのであればそれはそれで可能です。
ということで…。

以下やったこと。

パスを通す1(Test::mysqldとして)

  • mysql_install_db
  • mysqld

この2つがTest::mysqldで必要らしく内部で。

$ which mysql_install_db
$ which mysqld

をやってくれています。

しかし、パスが通ってないのでTest::mysqldはエラーを表示してとまります。
だので、なんとか見つけ出す!

portsで入れた場合は/opt/local/この配下辺りにあります。
/opt/local/lib/mysql5
というのがあったので、ここを見ていくと、
/opt/local/lib/mysql5/bin
の中に上記2つのファイルがあると思います。
ということで、bashrcに以下を記述。

export PATH=/opt/local/lib/mysql5/bin:$PATH

パスを通す2(mysqlとして)

mysql_install_dbが/opt/local/lib/mysql5/binにあることで、
--basedir='/opt/local/lib/mysql5として、mysqlを起動しようとします。

が、/opt/local/lib/mysql5/share/englishを探したけれどerrmsg.sysが見つかりませんというエラーをmysqlが表示してくれます。
そして、その他にも3つほどエラーが表示されて。
まとめると、以下の4つのファイルを求められます。

ということで以下4ファイルを探す。

  • errmsg.sys

/opt/local/share/mysql5/mysql/english/

  • fill_help_tables.sql

/opt/local/share/mysql5/mysql/fill_help_tables.sql

/opt/local/share/mysql5/mysql/mysql_system_tables.sql

/opt/local/share/mysql5/mysql/mysql_system_tables_data.sql

たぶん、それぞれこの辺りに在ります。

で、/opt/local/lib/mysql5/shareこの辺を探しましたっていうので、
そこからリンクを作っちゃう。

で、こんな感じにしました。

$ cd /opt/local/lib/mysql5/share/
$ ls -l
english -> /opt/local/share/mysql5/mysql/english/
fill_help_tables.sql -> /opt/local/share/mysql5/mysql/fill_help_tables.sql
mysql_system_tables.sql -> /opt/local/share/mysql5/mysql/mysql_system_tables.sql
mysql_system_tables_data.sql -> /opt/local/share/mysql5/mysql/mysql_system_tables_data.sql

あとはTest::mysqldを使いましょう。

パスを通すことしかしていないので、もっとスマートな方法があると思います!
ひとまず、適当にパスを通しました。

こんな話をしていたらmysql-buildこんなのが在るよ。
と教えてもらったので、今度試してみようと思いまっす。