web-dev-qa-db-ja.com

mysql2 gemのGem :: LoadErrorですが、すでに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を実行し、サーバーを再起動しようとしましたが、それでもエラーが発生します。

104
Mysoulisinseoul

Rails 4.2.4(Rails 4.1.5も使用)にアップグレードするときにこのエラーが発生する場合は、このバージョンのmysql2を使用してみてください。

gem 'mysql2', '~> 0.3.18'

どうやらmysql2はRailsの新しいバージョンとまだ互換性がないようです。なぜなら、Rails 4.2.4は2015年9月8日、私がこの質問に答える時点でかなり新しいからです。 Gemファイルを実行します:

bundle install 

あなたは行ってもいいはずです

245
Hassan Azimi

最新バージョン(0.4.0)の前にmysql2 gemバージョンを指定した場合、私にとってはうまくいきました。何らかの理由で、Rails 4.2.4とそのgem 0.4.0に問題があります。そのため、問題を解決するために、リリースされた以前のgem 0.3.20を指定したところ、問題なく動作しました!

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

ここですべてのgemバージョンを確認できます。 https://rubygems.org/gems/mysql2/versions

27
romeromedeiros

への変更

gem 'mysql2', '~> 0.3.18'

gemfileで。

公式のmysql2 Githubのこのスレッドはこれを行うように言っています。 Railsバージョン4.x.xの場合、そのバージョン番号を宣言する必要があります。

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

次にbundle update mysql2を実行します。

16
suga_shane

Rails 4.1へのアップグレード後に同じエラーが発生し、mysql2を更新することで解決できました。 Rails appフォルダーでこれを実行します。

$ bundle update mysql2
8
valo

この問題は、Rails> 4の新しいバージョンを使用している場合に発生する可能性があります

これらの2つの簡単な手順を実行すると、動作します。 Gemfileを開き、以下の行を見つけます

gem 'mysql2'

その行を以下のような特定のmysqlバージョンに置き換えます

gem 'mysql2', '~> 0.3.18'

サーバーを停止してバンドルを実行します

bundle install

サーバーを再起動します。動作するはずです。

Rails s
8
Prabhakar

Rubyの初心者であるため、行gem 'mysql2'、 '〜> 0.3.18'を理解できませんでした

単にRailsプロジェクトフォルダーに移動してから、mysql2の行が0.4 *のようになるので、gem 'mysql2'、 '〜> 0.3.18'に変更できます。

そして、新しい定義があるので、上で説明したように単純なコマンドを実行するために依存関係を再構築する必要がありますbundle install

7
Muaaz salagar

Mysql2(0.4.1)gemの新しいバージョンはmysql2_adaptorをロードできないため、mysql2 gemをロードしません。これは私のために働いています。

gem 'mysql2', '~> 0.3.13'

そして走る

bundle install
5
sushilprj

同じエラーが発生しましたが、これは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'に変更しましたが、今のところ機能します。

2
Lev Lukomsky

これは私がこれをどのように修正したかです:

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

クレジット: バンドルのインストールを取り消す方法--without

2
Ich

Mysql2の新しいバージョン(> = 0.4.0)gemがmysql2_adaptorをロードできないため、mysql2 gemをロードしません。これを試してもらえますか?

gem 'mysql2', '~> 0.3.13'

うまくいけば、うまくいくはずです。

1
Neeraj Kumar

私は、RubyおよびWebサイトでRailsに新たにスパンキングしていますが、何がうまくいったのか聞いています。

Gemファイル、gem 'mysql2'をgem 'mysql2'、 '〜> 0.3.13'に変更し、Railsでバンドルインストールを入力してからRails sを試してみましたエラーが発生したので、mysql2をバンドル更新してからRailsにRails sと入力しましたが、うまくいきました。

0
matt napper

問題を解決し、mysql2 gem localをインストールし(gem install mysql2、バンドルインストール)、Gemfileに次の行を追加しました。

gem 'mysql2'

Database.ymlでmysql2アダプターを設定する

adapter: mysql2

また重要でした!

0
atomiccoder