Как правильно установить гем DBI в Ruby, чтобы он мог общаться с MySql? - PullRequest
0 голосов
/ 13 января 2012

На моем Windows 7 я установил Ruby 1.9.2 и установил следующие гемы:

* МЕСТНЫЕ ДРАГОЦЕННЫЕ КАМНИ *

  • dbd-mysql (0.4.4)
  • дБи (0,4,5)
  • устарело (2.0.1)
  • httparty (0.8.1)
  • rubygems-update (1.8.15)

(я сделал это с помощью gem install).

Я также написал следующий простой тестовый комплект:

require 'rubygems'
require 'dbi'

begin
    dbh = DBI.connect("DBI:Mysql:test", "username", "pwd")

    row = dbh.select_one("SELECT VERSION()")
    puts "Server Version: "+row[0]
rescue DBI::DatabaseError => e
    puts "An error occurred"
    puts "Error code: #{e.err}"
    puts "Error message: #{e.errstr}"
ensure
    # disconnect from server
    dbh.disconnect if dbh
end

Независимо от того, как я указываю строку подключения, я получаю:

C:\Code\Concordance.SE>ruby test_sql.rb
C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:300:in `block in
load_driver': Unable to load driver 'Mysql' (underlying error: uninitialized con
stant DBI::DBD::Mysql) (DBI::InterfaceError)
        from C:/Tools/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'

        from C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:242:
in `load_driver'
        from C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:160:
in `_get_full_driver'
        from C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:145:
in `connect'
        from test_sql.rb:4:in `<main>'

}

Что я делаю не так?

1 Ответ

1 голос
/ 13 января 2012

Нашел ответ на мою проблему в этом вопросе .

Когда вы используете Ruby в 64-битной операционной системе, вам нужно скопировать новую версию libMySql.dll в каталог Ruby \ bin.Лучший источник для этой библиотеки - здесь .

...