Некоторые проблемы с запуском "WEbrick" - PullRequest
3 голосов
/ 09 декабря 2011

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

"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>'
"

Ответы [ 3 ]

12 голосов
/ 27 декабря 2011

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

Существуетпростой способ позволить 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 и copu mysql-connector-c-noinstall-6.0.2-win32 \ lib \ libmysql.dll в RailsInstaller \ Ruby1.9.2 \ bin

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

2 голосов
/ 09 декабря 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 gem (инструкции по установке работают для обоих), пожалуйста,pdate вашего пакета:

bundle check

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

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

2 голосов
/ 09 декабря 2011

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

...