0

私はRubyの初心者で、キュウリのためにRubyを介してmysqlサーバーに接続しようとしており、cukesの実行中に次のエラーが発生します。エラー: ロードするファイルがありません -- mysql (LoadError)

しかし、mysql gem をインストールしました。ここに私の gem リストがあり、libmysql.dll が ruby​​_home\bin パスの下にあります。

  • アドレス指定可能 (2.2.8)
  • ビルダー (3.0.0)
  • バンドラー (1.1.4)
  • 子プロセス (0.3.3)
  • キュウリ(1.2.1)
  • diff-lcs (1.1.3)
  • ffi (1.0.11、1.0.9 x86-mingw
  • ガーキン (2.11.1 x86-mingw32)
  • ヘッドレス (0.2.2)
  • json (1.7.3)
  • libwebsocket (0.1.4)
  • ミニテスト (1.6.0)
  • multi_json (1.3.6)
  • mysql (2.8.1 x86-mingw32)
  • mysql2 (0.3.11 x86-mingw32)
  • ネット LDAP (0.3.1)
  • レーキ (0.8.7)
  • rdoc (2.5.8)
  • rspec (2.10.0)
  • rspec-コア (2.10.1)
  • rspec-expectations (2.10.0)
  • rspec モック (2.10.1)
  • rubygems-更新 (1.8.24)
  • ルビージップ (0.9.9)
  • セレン-webdriver (2.24.0)
  • タイトル化 (1.2.1)
  • watir-webdriver (0.6.1)

何が起こっているのか...

4

1 に答える 1

2

どのバージョンの Ruby を実行していますか? 1.8 を実行している場合は、「require 'mysql'」の前に「require 'rubygems'」を追加する必要があります。そうでない場合は、非明示的な方法で gem を要求してみてください。このようなもの:

require_relative "rubygems"    
require_relative "mysql"

簡単なテストを行いたい場合は、以下のコードを使用してください..:

require "rubygems"   

require "mysql"

     begin

     # connect to the MySQL server

     db = Mysql.real_connect("localhost", "username", "password")


     # get server version string and display it

     puts "Server version: " + db.get_server_info


   rescue Mysql::Error => e

     puts "Error code: #{e.errno}"

     puts "Error message: #{e.error}"

     puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")

   ensure

     # disconnect from server

     db.close if db

   end

すべてがうまくいけば、mysql のバージョンが表示されるはずです。

于 2012-07-18T11:24:27.530 に答える