Ruby on rails 关于跑步的一些问题;“韦布里克”;

Ruby on rails 关于跑步的一些问题;“韦布里克”;,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,webrick,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Webrick,在我在Windows7和windows上安装Ruby1.9.2p290(带有rubyInstaller)之后 将MySQL连接到它(我检查了它 我安装了rails,然后在上面创建了一个项目 “C:\Users\Amiref\Documents\Sites\simple\u cms” 按照以下顺序:“rails新简单的\u cms-d mysql” 然后,当我使用“rails服务器”运行webrick时,我在上看到了这个错误 命令提示: "rails.bat : C:/Ruby192/lib/ru

在我在Windows7和windows上安装Ruby1.9.2p290(带有rubyInstaller)之后 将MySQL连接到它(我检查了它 我安装了rails,然后在上面创建了一个项目

“C:\Users\Amiref\Documents\Sites\simple\u cms”

按照以下顺序:“rails新简单的\u cms-d mysql” 然后,当我使用“rails服务器”运行webrick时,我在上看到了这个错误 命令提示:

"rails.bat :
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in
`require': Incorrect MySQL client library version! This gem was compile
d for 6.0.0 but the client library is 5.1.45. (RuntimeError)
At line:1 char:6
+ rails <<<<  server
+ CategoryInfo          : NotSpecified: (C:/Ruby192/lib/...
(RuntimeError):String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in
`<top (required)>'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in
`require'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in
`<top (required)>'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
`require'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
`block (2 levels) in require'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in
`each'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in
`block in require'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in
`each'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in
`require'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in
`require'
from
C:/Users/Amiref/Documents/Sites/simple_cms/config/application.rb:7:in
`<top (required)>'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:52:in
`require'
 from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:52:in
`block in <top (required)>'
 from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:49:in
 `tap'
from
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:49:in
`<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
"
“rails.bat:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in

`require':MySQL客户端库版本不正确!此gem已编译 d表示6.0.0,但客户端库为5.1.45。(运行时错误) 第1行字符数:6
+rails读取错误消息。您的
MySQL
gem需要版本
6.0.0
,但您已经安装了
5.1.45

这是由于gem(可能是MySQL或mysql2)导致的是在您的项目中使用的,并且该gem的二进制文件是根据与您安装的不同版本的MySQL编译的

mysql和mysql2 gems都取决于路径中是否有
libmysql.dll
库,这可能不同于用于构建这些gems的库

最有可能是您使用Bundler安装了这些gems,它在安装说明中详细说明了从哪里获得特定版本的
libmysql.dll

我建议您沿着路径中的
libmysql.dll
删除已安装的mysql、mysql2 gems,并按照以下说明操作:

您可以跳过MySQL本身的安装,但请注意MySQL连接器/C二进制文件(zip存档,而不是安装程序)的使用以及如何安装

一旦您完成mysql或mysql2 gem的安装(安装说明适用于两者),请更新您的捆绑包:

bundle check
因此,它反映了本地安装的版本


希望对您有所帮助。

最新的rails或ruby使用mysql-connector-c-6(libmysql.dll)编译mysql2-0.3.11-x86-mingw32,因此您应该使用6客户端dll

有一种简单的方法可以让RailsInstaller(Ruby1.9.2)使用mysql-connector-c-6:

  • 下载mysql-connector-c-noinstall-6.0.2-win32.zip
  • 将mysql-connector-c-noinstall-6.0.2-win32.zip和copu-mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll解压缩到RailsInstaller\Ruby1.9.2\bin

  • 然后运行rails服务器,一切正常。

    “MySQL客户端库版本不正确!这个gem是为6.0.0编译的,但是客户端库是5.1.45。“如果我知道如何解决这个问题,我永远不会问。现在,如果你知道我如何解决它,那么请帮助我。安装MySQL的更新版本?安装旧版本的gem?我去了mysql站点,安装了该站点上可用的最新版本,它是mysql 5.5,但现在我不明白为什么rails会给出这样的消息。如果我删除1)ruby 2)ruby on rails 3)mysql 5.5并重新安装,我能希望解决这个错误吗?您可以从以下链接下载mysql连接器:当您gem安装mysql2时,它会显示一条有用的消息告诉您这一点,甚至会为您提供指向正确版本libmysql.dll的上述链接。但是,如果您使用bundler安装gem,bundler会吃掉消息!