Ruby/DBIのインストール
Ruby(mswin32版)でRuby/DBIをインストールでやけに手間取ったので履歴を残しておきます。
MySQL/Rubyのインストール
C:\rubywork>gem install mysql Successfully installed mysql-2.7.3-x86-mswin32 1 gem installed Installing ri documentation for mysql-2.7.3-x86-mswin32... Installing RDoc documentation for mysql-2.7.3-x86-mswin32... ERROR: While generating documentation for mysql-2.7.3-x86-mswin32 ... MESSAGE: Unhandled special: Special: type=17, text="<!-- $Id: README.html, v 1.20 2006-12-20 05:31:52 tommy Exp $ -->" ... RDOC args: --op c:/ruby/lib/ruby/gems/1.8/doc/mysql-2.7.3-x86-mswin32/rdoc - -exclude ext --main README --quiet ext README docs/README.html (continuing with the rest of the installation) C:\rubywork>gem list mysql *** LOCAL GEMS *** mysql (2.7.3)
インストールはされているようだけど、なんかエラーが出てる。
一度アンインストールしてから入れ直してみる。
C:\rubywork>gem uninstall mysql Successfully uninstalled mysql-2.7.3-x86-mswin32 C:\work>gem install mysql --no-rdoc Successfully installed mysql-2.7.3-x86-mswin32 1 gem installed Installing ri documentation for mysql-2.7.3-x86-mswin32...
今度はエラーが出なくなった。
Ruby/DBIのインストール
C:\work>gem install dbi Successfully installed dbi-0.4.1 1 gem installed Installing ri documentation for dbi-0.4.1... Installing RDoc documentation for dbi-0.4.1... C:\work>gem install dbd-mysql Successfully installed dbd-mysql-0.4.2 1 gem installed Installing ri documentation for dbd-mysql-0.4.2... Installing RDoc documentation for dbd-mysql-0.4.2...
これは普通に入った。
動作確認
c:\work>irb
irb(main):001:0> require 'dbi'
=> true
irb(main):002:0> DBI.connect('dbi:mysql:test:localhost', 'root', 'root')
DBI::InterfaceError: Could not load driver (uninitialized constant DBI::TypeUtil)
from c:/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:368:in `load_driver'
from c:/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:233:in `_get_full_driver'
from c:/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:219:in `connect'
from (irb):2なんかエラーが出てる。
エラーメッセージでググってもわからなかったので、gemでインストールすることを諦める。
Ruby/DBIのインストール(その2)
C:\work>gem uninstall dbd-mysql
Successfully uninstalled dbd-mysql-0.4.2
C:\rubywork>gem uninstall dbi
Remove executables:
dbi
in addition to the gem? [Yn] Y
Removing dbi
Successfully uninstalled dbi-0.4.1次に、ここから以下の2つをダウンロードする。
それぞれ解凍して、インストールする。
C:\work>cd dbi-0.4.1 C:\work\dbi-0.4.1>ruby setup.rb (略) C:\work\dbi-0.4.1>cd ..\dbd-mysql-0.4.2 C:\work\dbd-mysql-0.4.2>ruby setup.rb (略)
再び動作確認
c:\work>irb
irb(main):001:0> require 'dbi'
=> true
irb(main):002:0> dbh = DBI.connect('dbi:mysql:test:localhost', 'root', 'root')
=> #<DBI::DatabaseHandle:0x2c23380 @convert_types=true, @handle=#<DBI::DBD::Mysql::Database:0x2c1f398 @attr={"AutoCommit"=>true}, @handle=#<Mysql:0x2c20130>, @mutex=#<Mutex:0x2c1ef4c>, @have_transactions=true>, @trace_output=nil, @driver_name="Mysql", @trace_mode=nil>
irb(main):003:0> dbh.select_one('SELECT VERSION()')
=> ["5.1.30-community"]