Ошибка установки mysql2 с windows

Странно, что я могу установить mysql2 с помощью этой команды: $ gem install mysql2 --platform=ruby -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.5\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.5\include"' Ниже приведены результаты:

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.10
1 gem installed
Installing ri documentation for mysql2-0.3.10...
Installing RDoc documentation for mysql2-0.3.10...

Но когда я запускаю bundle install (по-видимому, мне нужно установить много драгоценных камней), мне не удается установить mysql2, поэтому bundle install остановился на этом, что действительно сводит меня с ума ... кто-нибудь может помочь? тонны спасибо! Ниже результат от bundle install:

Installing mysql2 (0.3.8) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension
.

        c:/Ruby192/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... no
checking for main() in -llibmysql... no
*** 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:/Ruby192/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-libmysqllib
        --without-libmysqllib


Gem files will remain installed in G:/Desktop/20090319-/Rails Examples/ClockingI
T/vendor/bundle/ruby/1.9.1/gems/mysql2-0.3.8 for inspection.
Results logged to G:/Desktop/20090319-/Rails Examples/ClockingIT/vendor/bundle/r
uby/1.9.1/gems/mysql2-0.3.8/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.8), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.8'` succeeds before bundling.

person aaron    schedule 23.11.2011    source источник
comment
Похоже, Bundler пытается установить mysql2 версии 0.3.8, но, насколько я вижу, версии Windows для 0.3.8 были удалены. Я немного запутался, так как это должно быть таким же поведением для 0.3.10, но вы все равно можете попытаться дать Gemfile явную версию. Например, gem 'mysql2', '0.3.10' или gem 'mysql2', '0.3.9'. Я бы выбрал последний, потому что у него есть официальная версия x86-mingw32.   -  person tbuehlmann    schedule 23.11.2011


Ответы (4)


На моей машине с Ubuntu пришлось сначала запустить apt-get install libmysqld-dev, затем gem install mysql2... это сработало как шарм :)

person Xander    schedule 04.11.2012

Попробуйте установить mysql из-за пределов пакета, и если он работает, удалите mysql из Gemfile.

 sudo gem install mysql --no-rdoc --no-ri -- 

--with-mysql-config=/usr/local/mysql/bin/mysql_config

Также

apt-get install libmysqld-dev
person Mithun Sasidharan    schedule 23.11.2011
comment
Я попробовал gem install mysql, это удалось, но когда я запускаю bundle install, ошибка возникает снова: Установка mysql2 (0.3.7) с собственными расширениями Gem::Installer::ExtensionBuildError: ОШИБКА: Не удалось создать собственное расширение gem. c:/Ruby192/bin/ruby.exe extconf.rb проверка rb_thread_blocking_region()... да проверка main() в -llibmysql... нет *** extconf.rb не удалось *** - person aaron; 25.11.2011

Версия драгоценного камня mysql2, которую вы пытаетесь установить, имеет проблемы в Windows.

Пожалуйста, установите гем mysql2 без указания версии:

gem install mysql2
person Mithun Sasidharan    schedule 23.11.2011
comment
при запуске gem install mysql2 я получил эту ошибку: ОШИБКА: при выполнении gem ... (NameError) неинициализированная константа Psych:: Syck - person aaron; 25.11.2011
comment
теперь, когда вы установили mysql напрямую, вы можете удалить mysql из файла fgem, а затем установить пакет в порядке !!! Это должно быть достаточно - person Mithun Sasidharan; 25.11.2011
comment
спасибо, я удалил с помощью gem uninstall mysql и gem uninstall mysql2, а затем запустил bundle install, все драгоценные камни в порядке, и я вижу, что mysql2 тоже установлен Installing mysql2 (0.2.6). Но когда я запустил rake db:migrate, у меня снова возникла проблема: проблема libmysql.dll not found, и я исправил ее, скопировав libmysql.dll в c:\Ruby192\bin из C:\Program Files\MySQL\MySQL Server 5.5\lib, затем я запустил rake db:migrate, возникла другая проблема: rake aborted! 193: %1 is not a valid Win32 application. - c:/Ruby192/lib/ruby/gems/1.9.1/gem s/mysql2-0.2.6-x86-mingw32/lib/mysql2/1.9/mysql2.so - person aaron; 27.11.2011
comment
исправлена ​​проблема %1 is not a valid Win32 application со ссылкой на эту ссылку stackoverflow.com/questions/1208029/. снова возникает новая проблема... ERROR: ActiveRecord oracle_enhanced adapter could not load ruby-oci8 library, стек вызовов: c:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-oracle_enhanced-adapter-1.3.2/l ib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:7:in res cue in ‹top (обязательно)›'` - person aaron; 27.11.2011

Работает нормально, скачайте версию mysql-connector-c-6.1.5-win32, распакуйте в папку и попробуйте.

Хорошо работает для меня.

gem install mysql2 --no-ri --no-rdoc --platform=ruby -- --with-mysql-include=C:\mysql-connector\mysql-connector-c-6.1.5-win32\include -- с-mysql-lib = C:\mysql-connector\mysql-connector-c-6.1.5-win32\lib

person Community    schedule 24.07.2014