Ошибка «… не может загрузить такой файл – mysql2 / 2.0 / mysql2 (LoadError)». В Windows XP с Ruby 2.0.0

Сервер командной rails server передает эту ошибку.

 C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': cannot load such file -- mysql2/2.0/mysql2 (LoadError) 

Я использую Ruby 2.0.0 от RubyInstaller в Windows XP.

Я понял, в чем проблема, но я не знаю, как ее решить. Проблема в том, что в mysql2-0.3.11-x86-mingw32 нет никакого каталога 2.0/ . Это жемчужина, которую rails устанавливают как ее зависимость от Gemfile :

 GEM remote: https://rubygems.org/ specs: ... many gems here mysql2 (0.3.11-x86-mingw32) ... many gems here DEPENDENCIES ... mysql2 ... 

Это то, что находится в файле mysql2.rb :

 # C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\mysql2.rb RUBY_VERSION =~ /(\d+.\d+)/ require "mysql2/#{$1}/mysql2" # <<-- this is that #2 line that throws an error 

Очевидно, что он использует текущий номер версии Ruby и использует его в качестве сегмента пути для доступа к некоторому файлу mysql2 . На самом деле это файл mysql2.so . Поскольку я использую Ruby 2.0.0, сегмент пути 2.0 :

 mysql2/2.0/mysql2 

Итак, теперь давайте посмотрим, как выглядит этот каталог для mysql2-0.3.11-x86-mingw32 gem:

 dir: C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\ 

введите описание изображения здесь

Нет никакого каталога 2.0/ .

Я знаю вопрос о libmysql.dll . У меня это в моем C:\Ruby200\bin . Это не помогает.

Я прочитал этот ответ https://stackoverflow.com/a/5368767/1114926 от создателя RubyInstaller. Я попытался, но это не помогло. Он работает для Ruby 1.9.3 потому что есть каталог 1.9/ . Но это не работает для Ruby 2.0.0 .

Как его решить?


UPD 1:

Спасибо за ваш ответ . Я пробовал. К сожалению, у меня есть ERROR: Failed to build gem native extension. ошибка:

 C:\>gem install mysql2 --platform=ruby Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. C:/Ruby200/bin/ruby.exe extconf.rb checking for rb_thread_blocking_region()... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby200/bin/ruby C:/Ruby200/lib/ruby/2.0.0/mkmf.rb:431:in `try_do': The compiler failed to generate an executable file. (Runtim eError) You have to install development tools first. ... other code follows here... 

В нем говорится:

Сначала вы должны установить средства разработки.

Но у меня установлен полный DevKit, RubyInstaller устанавливает его. Не могу понять, что еще нужно.

Я уже опубликовал проблему на странице mysql2 GitHub https://github.com/brianmario/mysql2/issues/364 . Пока нет ответов.

Имела абсолютно такая же проблема в Windows 7 x64 с Ruby 2.0.0 и DevKit 4.7.

Следующие шаги помогли мне.

  1. gem удалить mysql2

  2. Загрузите последний соединитель MySQL из http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip.

  3. Извлеките его в C: \ connector-6.0.2

  4. gem install mysql2 –platform = ruby ​​- ‘–with-mysql-lib = “C: \ connector-6.0.2 \ lib” –with-mysql-include = “C: \ connector-6.0.2 \ include “–with-mysql-dir =” C: \ connector-6.0.2 “‘

Или даже короче:

gem install mysql2 –platform = ruby ​​- –with-opt-dir = “C: \ connector-6.0.2”

удалите mysql2-0.3.11-x86-mingw32 , gems, скомпилированные до Ruby200 , не будут работать. Вы должны скомпилировать его самостоятельно. Если вы запустите gem uninstall mysql2 и там есть не скомпилированная версия, то просто удалите mysql2-0.3.11-x86-mingw32 – скомпилированную версию else …

Установка gem install mysql2 --platform=ruby . это сработает.

Следуйте этому руководству по установке devkit http://rubyonwindowsguides.github.com/book/ch02-04.html .

Затем повторите попытку.

Точно такое же поведение, когда я пытаюсь установить Redmine на Windows XP

  • когда я пытаюсь сделать «rake generate_secret_token», я получил «не могу загрузить такой файл – mysql2 / 2.0 / mysql2 (LoadError)»
  • и когда я пытаюсь восстановить mysql2 с использованием –platform = ruby, я получил то же сообщение, что и вы, зеленый.

на данный момент я застрял там … но если у кого-нибудь есть что-то, что позволит мне двигаться вперед, это будет очень приветствуется. Я также буду в курсе

Антуан

Я почти сделал то же самое, что описал @odiszapc. Удалите старый gem, загрузите mysql-connector-c-noinstall, unzip, но, наконец, я использовал эту команду для создания родной жемчужины:

 gem install mysql2 --platform=ruby -- --with-opt-dir=/c/connector-6.0.2 

(Если вы используете git-bash, тогда вы можете использовать синтаксис каталога стиля unix.)

Скопируйте пасту по этой ссылке: https://github.com/brianmario/mysql2/issues/359 . Это сработало для меня.


Если после установки драгоценного камня вы получите сообщение об ошибке:

“Указанный модуль не может быть найден.
C: /Devel/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11/lib/mysql2/mysql2.so»

Это можно устранить, скопировав libmysql.dll в папку bin в Ruby.

  • Нет маршрутов совпадений «/ users / sign_out» devise rails 3
  • Разделить сервер и клиент API REST JSON?
  • Полиморфные отношения HABTM
  • Используйте обе таблицы учетных записей и пользователей с помощью программы «Разработка»
  • curl json post request через терминал для приложения rails
  • link_to и remote => true + jquery: Как? Помогите?
  • Устанавливать ограничение на один сеанс на пользователя за раз
  • Где разместить глобальные переменные в Rails 3
  • default_url_options и rails 3
  • Нет совпадений маршрута / активы
  • Как интегрировать тему Wrap Bootstrap в приложение Rails?
  • Давайте будем гением компьютера.