2012-05-23 11 views
6

私はディレクトリに、私は誤ったMySQLクライアントライブラリバージョン

rails s 

は私がフォローエラーを取得する実行するとその後

rails new simple_cms 

を呼び出して、新しいレールのプロジェクトを作成し

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/l 
ib/mysql2/mysql2.rb:2:in `require': Incorrect MySQL client library version! This 
gem was compiled for 6.0.0 but the client library is 5.5.24. (RuntimeError) 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- 
x86-mingw32/lib/mysql2/mysql2.rb:2:in `<top (required)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- 
x86-mingw32/lib/mysql2.rb:9:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11- 
x86-mingw32/lib/mysql2.rb:9:in `<top (required)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:68:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:68:in `block (2 levels) in require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:66:in `each' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:66:in `block in require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:55:in `each' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler/runtime.rb:55:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/ 
lib/bundler.rb:119:in `require' 
    from c:/development/ruby/simple_cms/config/application.rb:7:in `<top (re 
quired)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.3 
/lib/rails/commands.rb:53:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.3 
/lib/rails/commands.rb:53:in `block in <top (required)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.3 
/lib/rails/commands.rb:50:in `tap' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.3 
/lib/rails/commands.rb:50:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

私が持っていますこのエラーで他の人に見られましたが、Linuxユーザーである傾向があり、私はWindowsを実行しています。私は両方のレール(railsinstaller.org)とmysql 5.5を再インストールしようとしました。私は32ビットバージョンと64ビットバージョンの両方を使用しました。

+0

+1関連する質問をする – neeraj

答えて

13

これについては既にここでいくつか質問があるようです。彼らのソリューションを試しましたか?

おそらく最も明確ではこれです: mysql2 gem compiled for wrong mysql client library

適切な部分はここにある:

At the time of building this gem, the necessary DLL files where available 
in the following download: 

http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick 

And put lib\libmysql.dll file in your Ruby bin directory, for example 
C:\Ruby\bin 
+0

私はそれを見た。私はlibmysql.dllの移動についての最後のステップを逃しました。今それは動作します。ありがとう! – mhopkins321

+1

+1私の多くの余分な努力を保存するため – neeraj

0

私はどのに取り組んでいた新しいプロジェクトでこのエラーが突然Windowsマシンで動作を停止していましたすでにレールプロジェクトを行っていたので、インストールの問題ではありませんでした。

bundle updateコマンドが原因で、mysql2 gem(不明な理由により)をredownloadすることにしました。私のGemfile行gem 'mysql2', '~> 0.2.6'を無視しました。 Gemfile.lockに示すように

問題はそのバンドルの更新は、MySQLのバージョン0.2.18を得た、次の行に:

mysql2 (0.2.18-x86-mingw32) 

私は、シンボルが何を意味するのかわから注意していますが、私は置き換え

gem 'mysql2', '0.2.6' 

そして今、すべてが正常に動作のための私のgemfileに行を次のよう

gem 'mysql2', '~> 0.2.6' 

bundle updateを含む。

4

これにより、gemとその依存関係が削除されます。その後、再インストールすると、それ自体とすべての依存関係が再コンパイルされます。

gem uninstall mysql2 
bundle install