Gem::LoadError для гема mysql2, но он уже в Gemfile

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

Эта ошибка возникла при загрузке следующих файлов:

active_record/base

Это ошибка, которую я получаю при запуске сервера rails.

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

Я сделал bundle install и попытался перезапустить сервер, но все еще получаю сообщение об ошибке.


person Mysoulisinseoul    schedule 08.04.2014    source источник
comment
Вы запустили bundle после добавления гем и перезапустили сервер?   -  person Bachan Smruty    schedule 08.04.2014
comment
@BachanSmruty: Да, я сделал это.   -  person Mysoulisinseoul    schedule 08.04.2014
comment
Это в развертывании? Вы запускали bundle install --deployment   -  person j-dexx    schedule 08.04.2014
comment
В моем случае была плохо выполненная группа :mysql, optional: true do. Удалил логику и просто жестко запрограммировал гем.   -  person TheSatinKnight    schedule 23.07.2021


Ответы (14)


Если у вас есть эта ошибка при обновлении до rails 4.2.4 (также с rails 4.1.5), попробуйте использовать эту версию mysql2:

gem 'mysql2', '~> 0.3.18'

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

bundle install 

Тебе должно быть хорошо идти

person Hassan Azimi    schedule 08.09.2015
comment
в msyql2_adapter.rb я нахожу следующие коды: gem 'mysql2', '~> 0.3.13' require 'mysql2' это может быть причиной того, что версия 4.x.x mysql2 по умолчанию не будет работать - person Oscar Jiang; 17.09.2015

У меня это сработало, когда я указал версию gem 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

person rom5jp    schedule 16.09.2015

Изменить на

gem 'mysql2', '~> 0.3.18'

в вашем Gemfile.

Этот поток на официальном mysql2 Github говорит сделать это. Вам нужно объявить этот номер версии, если вы используете версию 4.x.x.

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

Затем запустите bundle update mysql2.

person suga_shane    schedule 27.02.2016
comment
Спасибо! Чтобы быть точным, вы не хотите bundle update, так как это обновит все ваши драгоценные камни. Команда bundle update mysql2. Может показаться очевидным, но это неправильная команда и может иметь непредвиденные последствия. (Чтобы вернуться к bundle update, запустите git checkout -- Gemfile.lock) - person Nick; 08.06.2016

Я получил ту же ошибку после обновления до Rails 4.1, и мне удалось решить ее, обновив mysql2. Запустите это в папке вашего приложения rails:

$ bundle update mysql2
person valo    schedule 12.04.2014

Эта проблема может возникнуть, если вы используете более новую версию рельсов > 4.

Сделайте эти два простых шага, это сработает. Откройте свой Gemfile и найдите строку ниже

gem 'mysql2'

замените эту строку конкретной версией mysql, как показано ниже.

gem 'mysql2', '~> 0.3.18'

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

bundle install

Теперь перезапустите ваш сервер. Он должен работать.

rails s
person Prabhakar Undurthi    schedule 21.12.2015

Будучи новичком в рубине, я не мог понять строку gem 'mysql2', '~> 0.3.18'

это просто означает, что перейдите в папку вашего проекта rails, а затем будет строка для mysql2, она будет похожа на 0,4 *, поэтому вы можете изменить ее на gem 'mysql2', '~> 0.3.18'

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

person Muaaz salagar    schedule 28.10.2015

Он не загружает гем mysql2, потому что новая версия гем mysql2 (0.4.1) не может загрузить файл mysql2_adaptor. Это работает для меня.

gem 'mysql2', '~> 0.3.13'

и беги

bundle install
person sushilprj    schedule 28.09.2015

У меня была такая же ошибка, потому что для 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', и пока это работает.

person Lev Lukomsky    schedule 08.05.2014

Вот как я это исправил:

 bundle config
 bundle config --delete without
 bundle install --deployment --without development test postgres

Кредиты: Как отменить установку пакета - без

person Ich    schedule 08.08.2015

Он не загружает гем mysql2, потому что новая версия гем mysql2 (>= 0.4.0) не может загрузить mysql2_adaptor. Вы можете попробовать это?

gem 'mysql2', '~> 0.3.13'

Надеюсь, это должно сработать.

person Neeraj Kumar    schedule 05.11.2015

Я решил проблему, установив гем mysql2 локально (gem install mysql2, bundle install) и добавив следующую строку в Gemfile:

gem 'mysql2'

Установка адаптера mysql2 в database.yml

adapter: mysql2

тоже было важно!

person atomiccoder    schedule 24.08.2014

Я новичок в Ruby on Rails и веб-сайтах, но слышал, что сработало для меня.

Мне пришлось изменить свой gemfile, gem 'mysql2' на gem 'mysql2', '~ > 0.3.13', затем в rails я набрал команду установить пакет, затем я попробовал rails s и получил ошибки, затем я попытался обновить пакет mysql2, затем в rails набрал rails s, и это сработало

person matt napper    schedule 22.02.2016

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

person Fábio Coelho    schedule 04.07.2020

Ранее я устанавливал mysql2 0.4.5, но это выдавало мне эту ошибку, поэтому я установил другую версию mysql2:

gem установить mysql2 --версия 0.3.20

Надеюсь, это решит вашу проблему.

person Prashant Choudhary    schedule 03.05.2017