Установка MySQL2 Gem в Windows

У меня были некоторые проблемы с установкой гема mysql2 на мой компьютер с Windows 8.1. Я следовал инструкциям в этом посте:

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

установить mysql2 драгоценный камень, и я не получил никаких сообщений об ошибках.

Я последовал за этим с

bundle install 

и подтвердил, что установлены следующие гемы (с помощью bundle show), подтверждая, что у меня установлены следующие гемы:

Using devise (3.2.2)
Using mysql2 (0.3.14)

Затем я попытался сделать:

rails generate devise:install

и вот что я получил:

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.   
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'
    from C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

Есть идеи?

Решение:

Ответ представляет собой комбинацию двух ответов от stackru плюс модификации. Ссылки на stackru:

Установка Ruby MYSQL2 gem на windows 7 ... mysql2 / mysql2.so: [BUG] Ошибка сегментации ruby ​​2.0.0p247

Итог: чтобы mysql2 работал в 64-битной среде с Ruby 2 на Windows 8.1, вам нужно сделать следующее:

  1. Очистка: причина, по которой вы здесь, заключается в том, что вы, вероятно, пытались установить этот гем, и он не удался, поэтому вам нужно выполнить некоторые действия: gem uninstall mysql2

  2. Загрузите Ruby 2.0 64 bit для Windows:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

  1. Запустите установщик. Обратите внимание на каталог, в который он устанавливается, и убедитесь, что он находится в ПУТИ пользователя. идти к

    Control Panel > System and Security > System - Advanced System Settings > Environment Variables
    

и убедитесь, что путь к каталогу bin каталога установки ruby ​​находится в переменной среды PATH для локального пользователя (это также нормально, если он находится в переменной среды SYSTEM Path)

  1. Загрузите 64-битный Dev Dev Kit:

http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

  1. Запустите установщик и запомните расположение каталога установки. В инструкциях говорится, что после завершения установки вам нужно запустить файл devkitvars.bat, чтобы установить переменные среды. Это НЕ работает для Windows 8.1. Вам нужно повторить инструкции, чтобы установить локальный путь, описанный в #2 выше, чтобы установить переменную окружения пути для локального пользователя, чтобы добавить каталог ruby ​​dev kit bin и каталог ruby ​​dev kit mingw bin. Например, если комплект разработчика был установлен в c:\ruby 2devkit, а вы установили ruby 2 в каталог C:\Ruby200-x64, то вы измените свой путь, чтобы он выглядел так:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
    
  2. Далее нужно установить mysql-разъем. НЕ загружайте и не запускайте самоинсталлятор. Вместо этого скачайте zip-файл и распакуйте его. Обратите внимание на каталог, в который вы его распаковали (для целей этого поста предположим, что вы распаковали его в c: \ mysql-connector:

http://dev.mysql.com/downloads/file.php?id=450612

  1. Файл libmysql.lib, включенный в 64-разрядную версию MySQL Connector, не совместим с компилятором mingw64-gcc. Вам необходимо создать совместимый с mingw64 файл libmysql.lib.

  2. Загрузите необходимые инструменты

    https://structure-svm-map.googlecode.com/files/svm-map-win.zip

  3. Разархивируйте этот файл в локальный каталог, давайте предположим, что вы разархивировали его в c:\svm-map

  4. Отредактируйте путь среды PATH, как описано ранее, чтобы теперь выглядеть следующим образом:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
    
  5. Создайте новые библиотеки mysql:

    (make sure you're running as administrator)
    
    cd c:\mysql-connector\lib
    
    gendef.exe libmysql.dll
    
    dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib
    
    copy libmysql.dll C:\Ruby200-x64\bin
    
    copy libmysql.lib C:\Ruby200-x64\bin
    
  6. Установите драгоценный камень следующим образом (обратите внимание на использование прямой косой черты вместо обратной косой черты, она не будет выполнена, если вы используете обратную косую черту):

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

Надеюсь, это поможет, и, надеюсь, кто-то обратит внимание на тех немногих пользователей Windows 8.1, которые хотят заняться разработкой Ruby on Rails.

2 ответа

Когда вы установили mysql2, вы скачали необходимые ей файлы lib?


Я не установил его в Windows 8, но Windows 7 должен иметь этот файл, чтобы дать mysql зависимости, необходимые для его работы. Вы можете увидеть различные учебники о том, как это сделать, и я обрисую простой обзор здесь:

- Распакуйте файл коннектора mysql:

C:\mysql-connector-c-6.1.3-win32\ (или аналогичный путь без пробелов)

- Запустите mysql2 Установщик gem снова:

gem uninstall mydsql
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"'

Итог, я думаю, что ваш mysql2 gem не загружает файлы, необходимые для запуска, и, вероятно, не выдает ошибку, потому что это Windows 8

Я надеюсь, что это поможет при попытке установить mysql2 с помощью MariaDB на компьютере с Windows 10 .

По какой-то причине у меня было много проблем с использованием библиотеки соединителей. Кроме того, библиотеки, которые я мог загрузить, были версии 6, а версия MariaDB, которую я использовал, использовала библиотеки версии 10.

Сначала я скачал и установил MariaDB.

я использовал команду

      gem install mysql2 --platform=ruby -- --with-mysql-lib="path_to:\MariaDB 10.5\"

Это скомпилировало и установило гем без каких-либо проблем.

В базе данных.yml

по умолчанию: & адаптер по умолчанию: кодировка mysql2: переподключение utf8: false база данных: пул имен DB: 5 имя пользователя: пароль DBuser: пароль DBpassword сокет: tmp/mysql.sock

Другие вопросы по тегам