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
を実行し、サーバーを再起動しようとしましたが、それでもエラーが発生します。
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
あなたは行ってもいいはずです
最新バージョン(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
への変更
gem 'mysql2', '~> 0.3.18'
gemfileで。
公式のmysql2 Githubのこのスレッドはこれを行うように言っています。 Railsバージョン4.x.xの場合、そのバージョン番号を宣言する必要があります。
https://github.com/brianmario/mysql2/issues/675
次にbundle update mysql2
を実行します。
Rails 4.1へのアップグレード後に同じエラーが発生し、mysql2を更新することで解決できました。 Rails appフォルダーでこれを実行します。
$ bundle update mysql2
この問題は、Rails> 4の新しいバージョンを使用している場合に発生する可能性があります
これらの2つの簡単な手順を実行すると、動作します。 Gemfileを開き、以下の行を見つけます
gem 'mysql2'
その行を以下のような特定のmysqlバージョンに置き換えます
gem 'mysql2', '~> 0.3.18'
サーバーを停止してバンドルを実行します
bundle install
サーバーを再起動します。動作するはずです。
Rails s
Rubyの初心者であるため、行gem 'mysql2'、 '〜> 0.3.18'を理解できませんでした
単にRailsプロジェクトフォルダーに移動してから、mysql2の行が0.4 *のようになるので、gem 'mysql2'、 '〜> 0.3.18'に変更できます。
そして、新しい定義があるので、上で説明したように単純なコマンドを実行するために依存関係を再構築する必要がありますbundle install
Mysql2(0.4.1)gemの新しいバージョンはmysql2_adaptorをロードできないため、mysql2 gemをロードしません。これは私のために働いています。
gem 'mysql2', '~> 0.3.13'
そして走る
bundle install
同じエラーが発生しましたが、これは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'
に変更しましたが、今のところ機能します。
これは私がこれをどのように修正したかです:
bundle config
bundle config --delete without
bundle install --deployment --without development test postgres
クレジット: バンドルのインストールを取り消す方法--without
Mysql2の新しいバージョン(> = 0.4.0)gemがmysql2_adaptorをロードできないため、mysql2 gemをロードしません。これを試してもらえますか?
gem 'mysql2', '~> 0.3.13'
うまくいけば、うまくいくはずです。
私は、RubyおよびWebサイトでRailsに新たにスパンキングしていますが、何がうまくいったのか聞いています。
Gemファイル、gem 'mysql2'をgem 'mysql2'、 '〜> 0.3.13'に変更し、Railsでバンドルインストールを入力してからRails sを試してみましたエラーが発生したので、mysql2をバンドル更新してからRailsにRails sと入力しましたが、うまくいきました。
問題を解決し、mysql2 gem localをインストールし(gem install mysql2、バンドルインストール)、Gemfileに次の行を追加しました。
gem 'mysql2'
Database.ymlでmysql2アダプターを設定する
adapter: mysql2
また重要でした!