[Ruby] MySQLをRubyで動かす on Cygwin
Cygwin環境下で,Rubyを動かすのは結構簡単.
Cygwinのインストールツールでもインストールできるし,ソースからもコンパイルできる.
このCygwin上のRubyからMySQLを叩くライブラリをインストールしてみた.
MySQL/Ruby
http://www.tmtm.org/mysql/ruby/
ここからダウンロードできる.
しかし,Cygwinだとmysqlclientがなんたらかんたらとエラーが出る.
面倒くさいのでバイナリパッケージを探したらあった.
http://raa.ruby-lang.org/project/mysql-ruby-win/
ここからダウンロードし,インストールする.
Rubyでかかれたインストーラもあるけど,手で入れても良い.
/usr/lib/ruby/1.8/i386-cygwin/・・・Cygwinパス
MySQL/Rubyのテストコード
#!/usr/bin/ruby require "mysql" def test_query(dbh) res = dbh.query("SELECT * FROM user") while row = res.fetch_hash do printf "%s, %s ", row["name"], row["category"] end printf "%d rows were returned ", res.num_rows res.free end def main() dbh=nil begin # connect to the MySQL server dbh = Mysql.real_connect("127.0.0.1", "root", "", "mysql") # get server version string and display it puts "Server version: " + dbh.get_server_info rescue MysqlError => e print "Error code: ", e.errno, " " print "Error message: ", e.error, " " ensure # disconnect from server test_query(dbh) dbh.close end end main()
注意点は,
dbh = Mysql.real_connect("127.0.0.1", "root", "", "mysql")
のところで,サーバ名をlocalhostとして設定すると,/tmp/sql.socketがないとか,エラーがでる可能性がある.
これが動けば問題なしのはず.