Некоторые проблемы с запуском WEbrick

После того, как я установил ruby ​​1.9.2p290 (с rubyInstaller) на Windows 7 и подключил к нему MySQL (я проверил, и это сработало), я установил рельсы, а затем создал проект на

"C:\Users\Amiref\Documents\Sites\simple_cms"

в следующем порядке: «rails new simple_cms -d mysql», затем, когда я использую «rails server» для запуска 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>'
"

person ainternet73    schedule 08.12.2011    source источник
comment
Неправильная версия клиентской библиотеки MySQL! Этот гем был скомпилирован для 6.0.0, но клиентская библиотека — 5.1.45.   -  person Phrogz    schedule 09.12.2011
comment
Если я знаю, как я могу решить эту проблему, я никогда не спрошу об этом. Теперь, если вы знаете, как я могу это решить, помогите мне.   -  person ainternet73    schedule 09.12.2011
comment
Установить обновленную версию MySQL? Установить более старую версию драгоценного камня?   -  person Phrogz    schedule 09.12.2011
comment
Я пошел на сайт mysql и установил последнюю версию, доступную на сайте, и это была mysql 5.5, но теперь я не понимаю, почему рельсы выдают такое сообщение. Если я удалю 1) ruby ​​2) ruby ​​on rails 3) mysql 5.5 и переустановлю их, могу ли я надеяться решить эту ошибку?   -  person ainternet73    schedule 09.12.2011


Ответы (3)


Новейшие рельсы или ruby ​​используют mysql-connector-c-6 (libmysql.dll), компилируют mysql2-0.3.11-x86-mingw32, поэтому вам следует использовать 6 клиентских dll.

Существует простой способ разрешить RailsInstaller (Ruby1.9.2) использовать mysql-connector-c-6:

  1. скачать mysql-connector-c-noinstall-6.0.2-win32.zip
  2. Разархивируйте mysql-connector-c-noinstall-6.0.2-win32.zip и скопируйте mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll в RailsInstaller\Ruby1.9.2\bin

Затем запустите сервер rails, и все в порядке.

person Yand Liu    schedule 27.12.2011
comment
Вы можете загрузить коннектор mysql по следующей ссылке: dev.mysql.com/downloads/connector/ с - person Deepak Singh Rawat; 03.01.2012
comment
Когда вы устанавливаете mysql2, он отображает полезное сообщение, говорящее вам об этом, и даже дает вам приведенную выше ссылку на правильную версию libmysql.dll. Однако, если вы устанавливаете гем с помощью бандлера, он съедает сообщение! - person antinome; 28.02.2012

Прочтите сообщение об ошибке. Ваш гем MySQL ожидает версию 6.0.0, но у вас установлена ​​5.1.45.

person jergason    schedule 08.12.2011

Это вызвано тем, что в вашем проекте использовался драгоценный камень (вероятно, mysql или mysql2), и двоичные файлы этого драгоценного камня были скомпилированы с версией MySQL, отличной от той, которую вы установили.

И драгоценные камни mysql, и mysql2 зависят от того, есть ли у вас библиотека libmysql.dll в PATH, которая может отличаться от той, которая использовалась для создания этих драгоценных камней.

Скорее всего, вы использовали Bundler для установки этих драгоценных камней, которые разжевывали примечания по установке о том, где взять эту конкретную версию libmysql.dll.

Я бы порекомендовал вам удалить установленные драгоценные камни mysql, mysql2 вдоль libmysql.dll, которые у вас есть где-то в вашем PATH, и следовать инструкциям, описанным здесь:

http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

Вы можете пропустить установку самой MySQL, но обратите внимание на использование двоичных файлов MySQL Connector/C (zip-архив, а не установщик) и на то, как их установить.

После того, как вы завершили установку гема mysql или mysql2 (инструкции по установке работают для обоих), обновите свой пакет:

bundle check

Таким образом, это отражает локальную установленную версию.

Надеюсь, это поможет.

person Luis Lavena    schedule 08.12.2011