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"]