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自体が流行ってないってこと?