MySQL/Ruby導入における注意事項とか。

先日インストールできずに悩んでいたMySQL/Rubyですが、
Macに元から入っていたRubyが何か悪さしてるっぽかったです。
とりあえず新規にRubyをインストールして、そっちにパスを繋げてみたら、
インストール成功。
なんだかよくわかりませんが、
Macに最初から入ってるほうのRubyとは相性が悪いんでしょうね。


そしたら

require 'mysql'
obj = MySQL
object = Mysql::new('localhost','root','****')
object.create_db("TEST_RUBY")

でエラー発生。
権限の問題かと思ったんだけれど、
「create_dbメソッドなんて定義されてません」って怒られます。
権限の問題じゃない証拠に、
その直前までは無事に動いてるし、

object.query("CREATE DATABASE TEST_RUBY")

も正常に動きますし…。謎だ。


MySQL/Rubyについてきた test.rb を走らせても

115 tests, 391 assertions, 0 failures, 0 errors

って言われて問題無さそうだし……って、assertionが391?
これ、無事に通過したassertionのことだよね……?
これは関係なかったぽい


そんな感じで混乱しながら、
まず「requireで呼んでいるライブラリはどこだ」と探しに行きました。
すると"mysql.bundle"とかいう予想していない名前だったために
かなり時間を浪費した上、
バイナリだったために何の役にも立たないというオチ。


最終的には、MySQL/Rubyのソースファイル mysql.c に答えがありました。

#if MYSQL_VERSION_ID < 40000
    rb_define_method(cMysql, "create_db", create_db, 1);
    rb_define_method(cMysql, "drop_db", drop_db, 1);
#endif

とのこと。要するに、MySQL4 以降では提供されないメソッドなんですね。
何か不具合あったのかしら。
ていうかそういうことはマニュアルに書いておいて欲しい……。


それにしても、この件に関してだいぶググってみたのですけれど、
困っている人が一人見つかっただけでした。
なんで誰も解決策メモっといてくれないんだよー。
うーん、MySQL/Ruby自体が流行ってないってこと?