Установка MySQL2 Gem в Windows
У меня были некоторые проблемы с установкой гема mysql2 на мой компьютер с Windows 8.1. Я следовал инструкциям в этом посте:
установить 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, вам нужно сделать следующее:
Очистка: причина, по которой вы здесь, заключается в том, что вы, вероятно, пытались установить этот гем, и он не удался, поэтому вам нужно выполнить некоторые действия: gem uninstall mysql2
Загрузите Ruby 2.0 64 bit для Windows:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
Запустите установщик. Обратите внимание на каталог, в который он устанавливается, и убедитесь, что он находится в ПУТИ пользователя. идти к
Control Panel > System and Security > System - Advanced System Settings > Environment Variables
и убедитесь, что путь к каталогу bin каталога установки ruby находится в переменной среды PATH для локального пользователя (это также нормально, если он находится в переменной среды SYSTEM Path)
- Загрузите 64-битный Dev Dev Kit:
http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
Запустите установщик и запомните расположение каталога установки. В инструкциях говорится, что после завершения установки вам нужно запустить файл 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
Далее нужно установить mysql-разъем. НЕ загружайте и не запускайте самоинсталлятор. Вместо этого скачайте zip-файл и распакуйте его. Обратите внимание на каталог, в который вы его распаковали (для целей этого поста предположим, что вы распаковали его в c: \ mysql-connector:
Файл libmysql.lib, включенный в 64-разрядную версию MySQL Connector, не совместим с компилятором mingw64-gcc. Вам необходимо создать совместимый с mingw64 файл libmysql.lib.
Загрузите необходимые инструменты
https://structure-svm-map.googlecode.com/files/svm-map-win.zip
Разархивируйте этот файл в локальный каталог, давайте предположим, что вы разархивировали его в c:\svm-map
Отредактируйте путь среды PATH, как описано ранее, чтобы теперь выглядеть следующим образом:
C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
Создайте новые библиотеки 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
Установите драгоценный камень следующим образом (обратите внимание на использование прямой косой черты вместо обратной косой черты, она не будет выполнена, если вы используете обратную косую черту):
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