Gem::LoadError
Specified 'mysql2' for database adapter, but the gem is not loaded.
Add `gem 'mysql2'` to your Gemfile
Dieser Fehler trat beim Laden der folgenden Dateien auf:
active_record/base
Dies ist der Fehler, den ich beim Ausführen des Rails-Servers erhalte.
The mysql2 gem has been added to the Gemfile as well.
Ich habe es getan bundle install
und versucht, den Server neu zu starten, erhalte aber immer noch den Fehler.
ruby-on-rails
mysql2
gemfile
Mysoulisinseoul
quelle
quelle
bundle
nach dem Hinzufügen des Edelsteins ausgeführt und den Server neu gestartet?bundle install --deployment
Antworten:
Wenn beim Upgrade auf Rails 4.2.4 (auch mit Rails 4.1.5) dieser Fehler auftritt, versuchen Sie, diese Version von mysql2 zu verwenden:
Anscheinend ist mysql2 noch nicht mit einer neueren Version von Rails kompatibel, da Rails 4.2.4 zum Zeitpunkt der Beantwortung dieser Frage durch mich am 8. September 2015 ziemlich neu ist. Verwenden Sie also die obige Zeile in Ihrer Gem-Datei und führen Sie Folgendes aus:
Du solltest gut gehen
quelle
Es hat bei mir funktioniert, als ich eine mysql2-Edelsteinversion vor der neuesten (0.4.0) angegeben habe. Aus irgendeinem Grund gibt es ein Problem mit Rails 4.2.4 und diesem Juwel 0.4.0. Um das Problem zu lösen, habe ich gerade das zuvor veröffentlichte Juwel angegeben: 0.3.20 und es hat gut für mich funktioniert!
Sie können alle Edelsteinversionen hier überprüfen: https://rubygems.org/gems/mysql2/versions
quelle
Ändern
in deiner Gemfile.
Dieser Thread auf dem offiziellen mysql2 Github sagt dazu. Sie müssen diese Versionsnummer deklarieren, wenn Sie Rails Version 4.xx sind
https://github.com/brianmario/mysql2/issues/675
Dann renne
bundle update mysql2
.quelle
bundle update
da dies alle Ihre Edelsteine aktualisiert. Der Befehl lautetbundle update mysql2
. Könnte offensichtlich erscheinen, aber es ist der falsche Befehl und könnte unbeabsichtigte Konsequenzen haben. (Um zurückzukehrenbundle update
, laufengit checkout -- Gemfile.lock
)Ich habe den gleichen Fehler nach einem Upgrade auf Rails 4.1 erhalten und konnte ihn durch Aktualisierung von mysql2 beheben. Führen Sie dies in Ihrem Rails-App-Ordner aus:
quelle
Dieses Problem kann auftreten, wenn Sie eine neuere Version von Rails> 4 verwenden
Führen Sie diese beiden einfachen Schritte aus, es wird funktionieren. Öffne deine Gemfile und finde die folgende Zeile
Ersetzen Sie diese Zeile durch eine bestimmte MySQL-Version wie unten
Stoppen Sie nun den Server und führen Sie das Bundle aus
Starten Sie nun Ihren Server neu. Es sollte funktionieren.
quelle
Als Anfänger des Rubins konnte ich die Linie 'mysql2', '~> 0.3.18' nicht herausfinden.
es bedeutet einfach, dass Sie zu Ihrem Rails-Projektordner gehen und dann gibt es eine Zeile für mysql2, die wie 0,4 * aussieht, sodass Sie sie ändern können beträgt, gem 'mysql2', '~> 0,3,18' ändern können.
und da wir eine neue Definition haben, müssen wir die Abhängigkeit neu erstellen, um diesen einfachen Befehl auszuführen, wie in der Installation des oberen Bundles erläutert
quelle
Mysql2 gem wird nicht geladen, da die neue Version von mysql2 (0.4.1) gem den mysql2_adaptor nicht laden kann. Das funktioniert bei mir.
und Renn
quelle
Ich hatte den gleichen Fehler und dies liegt daran, dass für Rails 4.1 mindestens mysql2 Version 0.3.13 erforderlich ist und maximal Version 0.3.11 mit Windows kompatibel ist.
Also habe ich die Datei bearbeitet
c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb
und die Zeilegem 'mysql2', '~> 0.3.13'
in geändertgem 'mysql2', '~> 0.3.11'
, und es funktioniert soweit.quelle
So habe ich das behoben:
Credits: Wie machen Sie die Bundle-Installation rückgängig - ohne
quelle
Der mysql2-Edelstein wird nicht geladen, da die neue Version des mysql2-Gems (> = 0.4.0) den mysql2_adaptor nicht laden kann. Kannst du das versuchen?
gem 'mysql2', '~> 0.3.13'
Hoffentlich sollte es funktionieren.
quelle
Ich habe das Problem gelöst, indem ich mysql2 gem local installiert habe (gem install mysql2, bundle install) und der Gemfile die folgende Zeile hinzugefügt habe:
gem 'mysql2'
Festlegen des mysql2-Adapters in database.yml
adapter: mysql2
war auch wichtig!
quelle
Ich bin brandneu bei Ruby on Rails und Websites, höre aber, was für mich funktioniert hat.
Ich musste meine gemfile ändern, gem 'mysql2' in gem 'mysql2', '~> 0.3.13' Schienen s, und es hat funktioniert
quelle
Ich habe das Problem gelöst und den libmysqlclient-dev installiert. sudo aptitude installiert libmysqlclient-dev und führt später das Bundle aus.
quelle
Ich habe zuvor mysql2 0.4.5 installiert, aber das gab mir diesen Fehler, so dass ich eine andere Version von mysql2 installiert habe durch:
gem install mysql2 --version 0.3.20
Hoffe das löst dein Problem.
quelle