ActiveScriptRubyでRuby/MySQL(pure rubyのほう)を使ってMySQLデータベースに接続しようとしたのですが、エラーが発生して接続できませんでした。
C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:212:in `initialize': uninitialized constant Mysql::Protocol::UNIXSocket (NameError) from C:/Program Files/ruby-1.8/lib/ruby/1.8/timeout.rb:53:in `timeout' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:209:in `initialize' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `new' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `connect' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:42:in `new' from dbselect.rb:4
RubyGemsを使って入れたのでバージョン不整合?などと疑い、いろいろ調べてみたのですが、接続時のホスト名を”localhost”→”127.0.0.1″に修正したら大丈夫になりました。海外のフォーラム情報によるとWindowsでもUNIXSocketを使おうとするRuby/MYSQLのバグらしいです(Error: uninitialized constant Mysql::Protocol::UNIXSocket | keyongtech
■だめ
db = Mysql.new('localhost', 'dbuser', 'dbpassword', 'dbname');
■OK
db = Mysql.new('127.0.0.1', 'dbuser', 'dbpassword', 'dbname');