Установка Ruby MYSQL2 gem на windows 7

Я пытаюсь установить gem mysql2 в Windows 7, я загрузил соединитель с сайта mysql и поместил libmysql.dll в ruby200\bin

затем выполните gem install mysql2

Это результаты, я здесь здесь тусклый?

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()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
*** 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
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/
extconf.rb:37:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError
)


Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.
3.13 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/ext/mysql2/g
em_make.out

Ответ 1

РЕДАКТИРОВАТЬ 30/09/2014

Когда этот ответ был отправлен, установщик 64-битных рельсов не был рекомендуемой версией - теперь кажется, что люди начинают использовать его больше. Следует отметить, что при загрузке MySQL Connector вам необходимо загрузить 64 или 32 бит, чтобы соответствовать версии установленных вами рельсов.

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

По какой-то причине просто указание mysql-dir при установке gem не подбирает другие подкаталоги, поэтому вам нужно вручную установить параметры.

Для всех, кто испытывает ту же проблему, я сделал следующее:

1) Загрузите MySql C Connector из: http://dev.mysql.com/downloads/connector/c/

ПРИМЕЧАНИЕ. Не загружайте установщик, загрузите АРХИВ для своей ОС

Загрузите 32-битный или 64-битный ARCHIVE, чтобы соответствовать версии установленных вами рельсов.

2) Извлеките файл в C:\mysql-connector

3) Затем побежал:

 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

Вояла работает нормально.

РЕДАКТИРОВАТЬ 30/01/2014

Мне просто нужно было сделать новую установку на кирпичной машине, а команда на шаге 3 не работала, что работа была:

gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

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

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

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

О, и, наконец, если вы получите сообщение об ошибке gem mysql2, когда вы выполняете RAILS S, вам необходимо скопировать libmysql.dll из каталога LIB соединителя mysql в каталог bin, в котором установлены рельсы.

Ответ 2

Я пробовал решение @Mrk Fldig, но он не работал... Так что проблема решена:

  • Загрузите последний MySQL установщик для Windows 7 32 бит
  • Установлен камень со следующей командой: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

Одна ошибка, о которой нужно помнить, заключается в том, что я изменил обратную косую черту (\) на нормальные косые черты (/). Я пробовал такую ​​же процедуру с обратными косыми чертами, и это не сработало.

Установщик уже включает в себя соединители C для MySQL в каталоге MySQL Connector C 6.1 6.1.2. Поэтому, передавая только параметр --with-mysql-dir без параметров --with-mysql-lib или --with-mysql-include, заставляет драгоценный камень искать тот же каталог для каталогов lib и include

Ответ 3

Шаги для Ruby 2.1.3, Windows 8.1 и MySQL Server 5.7. Все x64 бит.

  • Загрузить Development Kit
  • Extracted Development Kit.
  • Запустите CMD и перейдите в каталог, где был создан комплект разработчика.
  • Выполнить ruby dk.rb init
  • Выполнить ruby dk.rb install
  • Запустить gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.7\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.7\include" --with-mysql-dir="c:\Program Files\MySQL\MySQL Server 5.7"'

Ответ 4

Я пробовал все предоставленные методы, но одна и та же ошибка появляется снова и снова: (

К счастью, устаревшая версия установлена ​​без ошибок!

gem uninstall mysql2
gem install mysql2 -v 0.2.6

Ответ 5

Это то, что сработало для меня за ту же ошибку в 64-разрядной версии Windows 8 и с использованием рубинового 64-битного

  • Загрузите и установите MySQL Server 5.6 64-bit
  • Запустите эту команду:

    gem install mysql2 -v '0.3.16' -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.6\include"'
    

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

Ответ 6

Попробуйте выполнить следующие шаги:

Я предполагаю:

  • a) вы используете windows7
  • b) ruby ​​2+ на C:\Ruby200-x64
  • c) рельсы 4+ установлены на рубине
  • d) WAMP установлен на C:\wamp и running

1) удалите ваш myslq2 gem:

$ gem uninstall mysql2

2) переустановите gem mysql2 с опцией пути:

$ gem install mysql2 -- '--with-mysql-lib="C:\wamp\bin\mysql\mysql5.6.12\lib" --with-mysql-include="C:\wamp\bin\mysql\mysql5.6.12\include"'

3) скопируйте libmysql.dll в C:\wamp\bin\mysql\mysql5.6.12\lib в C:\Ruby200-x64\bin

4) Откройте в своих рельсах приложение "Gemfile" и отредактируйте его, включив mysql2, добавив:

gem 'mysql2'

5) запустите сервер rails:

$ rails server

6) откройте свой браузер и перейдите на localhost: 3000/

Ответ 7

У меня все еще проблема с mysql2 gem, но ниже подход помог мне установить mysql с RoR в Windows Env.

Шаг 1: Изменения файла Gem: ({app}/Gemfile)

Обновить mysql2 → mysql

Шаг 2: Обновления в файле database.yml({app}/config/database.yml)

Изменить адаптер: mysql2 → adapter: mysql

host: localhost → host: 127.0.0.1

Шаг 3. Загрузите mysql-connector-c-noinstall-6.0.2-win32

Шаг 4. Скопируйте файл mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll в C:\RailsInstaller\Ruby1.9.3\bin

Шаг 5: пакетное обновление && & Начать сервер рельсов

Ответ 8

Вот что сработало для меня:

gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'

Был поиск нескольких часов и не видел этого варианта, поэтому, надеюсь, это поможет кому-то!

Ответ 9

Также попробуйте отключить антивирус перед установкой gem. Моя шахта была установлена ​​после выполнения следующей команды:

gem install mysql2 --platform=ruby -- '--with-mysql-lib=
"C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --wit
h-mysql-dir="C:\mysql-connector"'

Такая же команда не работала, когда мой антивирус был включен, так как он подталкивал некоторый рубиновый файл к сундуку. Надеюсь, это поможет кому-то.

Ответ 10

Для Cygwin я мог бы консолидировать различные шаги.

  • Используйте cygwin setup.exe для загрузки gcc, g++, make, cmake и libmysqlclient-devel (из портов cygwin).
  • Загрузите c/connector src для windows с сайта mysql. Я загрузил версию 6.x. ИЛИ загрузить версию libmysqlclient-devel (не уверен, откуда)
  • unzip
  • cd dir_connector
  • Не требуется и RISKY, но если версия cygwin libmysqlclient-devel равна 5.5.40, измените версии файла dir_connector/VERSION на 5.5.40
  • mkdir build
  • cd build
  • комментарий dtoa в stdlib.h, иначе компиляция не выполняется
  • cmake..
  • make
  • make install
  • gem install mysql2 - --with-mysql-config =/usr/local/mysql/bin/mysql_config

Ответ 11

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

Инициализировать ruby ​​devkit dk.rb init

Загрузите 32-разрядный разъем mysql и поместите его в соединитель mysql C:\mysql-connector

Вы должны знать, что при распаковке файла он создает подпапку с тем же именем и может давать ошибки.

Затем используйте вторую команду, указанную выше:

gem install mysql2 - platform = ruby - '- with-mysql-dir = "C: \ mysql-connector"' 

Это было решение, которое я нашел, поскольку у меня была та же проблема.

Ответ 12

В Windows 7 я обнаружил, что существующие ответы предоставили частичное решение, но я все равно не смог его установить.

Проблема, с которой я столкнулась, заключалась в том, что установщик Windows Community Edition для Windows, который я использовал, настаивал на том, чтобы помещать коннекторы в папки, называемые такими вещами, как C:\MySQL\MySQL Connector C 6.1.3. Процесс сборки в камне сообщал, что он не смог найти "C:\MySQL\MySQL" (и до этого, когда я получил его в Program Files, он жаловался, что не смог найти "C:\Program\includes" ), поэтому очевидно, что пространство было проблемой, и я не мог найти способ избежать их, чтобы он мог понять - возможно, кто-то сможет предложить один из них.

Поскольку я не был уверен, изменит ли это их установку, как только я понял, почему возникла проблема, я просто создал символическую ссылку из командной строки (что проще с cmd, чем powershell) следующим образом:

C:\MySQL> mklink /D ConnectorC ".\MySQL Connector C 6.1.3"

Тогда я мог бы использовать следующую установочную строку:

 gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/MySQL/ConnectorC/"'

Это работало правильно.

Кроме того, когда я попытался использовать его, я столкнулся с этой проблемой, поэтому может быть полезно знать, что перемещение файла lib MySQL из библиотеки C Connector lib папка может быть полезна.

Ответ 13

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

Моя машина Win 7 64bit. Я смог установить версию 0.3.16

  • Установить рубиновую версию 2.0.0p481 (?)
  • Девкит бла-бла
  • Установить рельсы версии 4.0.0
  • Загрузите Mysql Connector C 64-разрядный zip файл, поместите в диск C как mysqlc
  • Возьмите DLL из этого бункера, поместите его в lib ruby ​​
  • gem install mysql2 - - with-mysql-dir = "C:\mysqlc"

Ответ 14

Он работал у меня после добавления некоторых настроек

gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\Program Files\MySQL\MySQL Connector C 6.1.5\lib" --with-mysql-include="C:\Program Files\MySQL\MySQL Connector C 6.1.5\include" --with-mysql-dir="C:\Program Files\MySQL\MySQL Connector C 6.1.5"

Ответ 15

Ни один из них не работал у меня, пока я не понял, что у меня установлена ​​64-разрядная версия DevKit. Поэтому я загрузил 64-битный MySQL Connector/C из сайта MySQL

и установил драгоценный камень с опцией "with-mysql-dir"

Ответ 16

Вот что я сделал для windows server 2012 sp2. Ничто другое не работало...

После получения ошибки 'while installing mysql2 (0.3.17), and bundler cannot continue' Make sure that 'gem install mysql2 -v '0.3.17' succeeds...

1) Загрузите MySql C Connector из: http://dev.mysql.com/downloads/connector/c/

2) Extract the file to C:\mysql-connector

3) gem install mysql2 -v '0.3.17' --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

Примечание: -v '0,3.17' выше, это не сработает без этого.

4) bundle install → Наконец, успех.