Gem :: LoadError для mysql2 gem, але це вже в Gemfile


103
Gem::LoadError
Specified 'mysql2' for database adapter, but the gem is not loaded.
Add `gem 'mysql2'` to your Gemfile

Ця помилка сталася під час завантаження таких файлів:

active_record/base

Це помилка, яку я отримую на запущеному сервері рейок.

The mysql2 gem has been added to the Gemfile as well.

Я зробив bundle installі спробував перезапустити сервер, але все-таки отримав помилку.


Ви запустили bundleпісля додавання дорогоцінного каміння та перезапустили сервер?
Бачан Смрути

@BachanSmruty: Так, я це зробив.
Mysoulisinseoul

Це в розгортанні? Ви біжитеbundle install --deployment
j-dexx

Відповіді:


247

Якщо у вас є помилка під час оновлення до рейок 4.2.4 (також із рейками 4.1.5), спробуйте скористатися цією версією mysql2:

gem 'mysql2', '~> 0.3.18'

Мабуть, mysql2 ще не сумісний з новою версією рейок, оскільки рейки 4.2.4 є доволі новими, як час відповіді на це запитання мною 8 вересня 2015 року, тому використовуйте вищезазначений рядок у вашому Gem-файлі та запустіть:

bundle install 

Вам слід добре піти


2
у msyql2_adapter.rb я знаходжу коди нижче: gem 'mysql2', '~> 0,3.13' вимагає 'mysql2', це може бути причиною, чому mysql2 версія 4.xx не працюватиме
Оскар Цзян

27

Це працювало для мене, коли я вказав версію дорогоцінного каменю mysql2 перед найновішою (0.4.0). Чомусь є проблема з Rails 4.2.4 і цим коштом 0.4.0. Отже, для вирішення проблеми я щойно вказав випущений попередній дорогоцінний камінь: 0,3.20, і він добре працював для мене!

gem 'mysql2', '~> 0.3.20'
bundle install

Ви можете перевірити всі версії дорогоцінних каменів тут: https://rubygems.org/gems/mysql2/versions


16

Перейти

gem 'mysql2', '~> 0.3.18'

у вашому Gemfile.

Ця нитка в офіційному mysql2 Github каже зробити це. Вам потрібно оголосити цей номер версії, якщо ви використовуєте рейки версії 4.xx

https://github.com/brianmario/mysql2/isissue/675

Потім бігайте bundle update mysql2.


2
Дякую! Якщо бути точним, ви не хочете, bundle updateоскільки це оновить усі ваші дорогоцінні камені. Команда є bundle update mysql2. Можливо, це здається очевидним, але це неправильна команда і може мати непередбачувані наслідки. (Щоб повернутись bundle update, бігайте git checkout -- Gemfile.lock)
Нік

8

Я отримав таку ж помилку після оновлення до Rails 4.1, і мені вдалося її усунути, оновивши mysql2. Запустіть це в папці додатків рейки:

$ bundle update mysql2

8

Ця проблема може виникнути, якщо ви використовуєте новішу версію рейок> 4

Зробіть ці два простих кроки, це спрацює. Відкрийте свій Gemfile і знайдіть нижній рядок

gem 'mysql2'

замініть цей рядок на конкретну версію mysql, як показано нижче

gem 'mysql2', '~> 0.3.18'

Тепер зупиніть сервер і запустіть пакет

bundle install

Тепер перезавантажте ваш сервер. Це має працювати.

rails s

7

Будучи початківцем у рубіні, я не міг розібратися у дорогоцінній коштовності 'mysql2', '~> 0.3.18'

це просто означає перейти до папки проекту рейки, і тоді є рядок для mysql2, це буде приблизно 0,4 *, щоб ви могли змінити його на gem 'mysql2', '~> 0.3.18'

і, як у нас є нове визначення, нам доведеться відновити залежність, щоб зробити цю просту команду, як пояснено у верхній установці пакета


5

Він не завантажує mysql2 дорогоцінний камінь, оскільки нова версія mysql2 (0.4.1) дорогоцінний камінь не в змозі завантажити mysql2_adaptor. Це працює для мене.

gem 'mysql2', '~> 0.3.13'

і біжи

bundle install

2

У мене була така ж помилка, і це тому, що для Rails 4.1 потрібна мінімальна версія mysql2 0.3.13, а максимально сумісна з Windows - версія 0.3.11.

Тому я відредагував файл c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rbі змінив рядок gem 'mysql2', '~> 0.3.13'на gem 'mysql2', '~> 0.3.11', і він працює досі.



1

Він не завантажує mysql2 дорогоцінний камінь, оскільки нова версія mysql2 (> = 0.4.0) дорогоцінний камінь не в змозі завантажити файл mysql2_adaptor. Ви можете спробувати це?

gem 'mysql2', '~> 0.3.13'

Сподіваємось, це має спрацювати.


0

Я вирішив проблему, встановивши mysql2 gem local (gem install mysql2, встановити пакет) і додав наступний рядок до Gemfile:

gem 'mysql2'

Встановлення адаптера mysql2 в database.yml

adapter: mysql2

також було важливо!


0

Я брендую нове в Ruby на рейках та веб-сайтах, але чую те, що працювало на мене.

Мені довелося змінити свій gemfile, gem 'mysql2' на gem 'mysql2', '~> 0.3.13', то в рейках я набрав пакет встановлення, тоді я спробував рейки s і отримав помилки, тож я спробував оновити mysql2, а потім у рейках набрав. рейки s, і це спрацювало


0

Я вирішив проблему, встановивши libmysqlclient-dev. sudo здатність встановити libmysqlclient-dev і пізніше запустити пакет.


-1

Я раніше встановив mysql2 0.4.5, але це дало мені цю помилку, тому я встановив іншу версію mysql2:

gem встановити mysql2 --версія 0,3.20

Сподіваюся, це вирішить вашу проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.