RuntimeError mit mysql2 und rails3 (Bundler)


76

Ich bekomme diesen Fehler

`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
  from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-

Hier ist ein Dump des ganzen Fehlers und meiner Konfiguration und Gemfile.


Ich hatte das gleiche Problem und nach mehreren Analysen kann ich mysql2 erfolgreich unter Windows mit Rails3 installieren. Der Prozess, dem ich gefolgt bin, ist im folgenden Blog-Beitrag angegeben. kyybaventures.com/blog/installing-mysql2-gem-ruby-rails-windows Ich hoffe, es wird nützlich sein, das oben genannte Problem zu lösen. Mani
Maniempire

Antworten:


0

Ich hatte den gleichen Fehler nach dem Upgrade von Ubuntu 11.10 auf 12.04. So habe ich das Problem behoben:

gem uninstall mysql2
bundle

Ich denke, der Schlüssel hier sind die 'nativen Erweiterungen' - ich nehme an, als ich das letzte Mal installiert habe, habe ich eine andere Version von MySQL verwendet.

Installing mysql2 (0.3.11) with native extensions

101

Bei der Verwendung von Rails 3.0.7 und mysql2 0.3.2 wurde der gleiche Fehler angezeigt. Die Lösung, die ich hier gefunden habe , besteht darin, eine ältere Version von mysql2 zu verwenden. So bearbeiten Sie Ihre Gemfile auf

gem 'mysql2', '< 0.3'

und Renn

bundle install 

Dieser hat es für mich unter Ubuntu 10.04 behoben !! Wenn Sie RVM verwenden, können Sie auch: verwenden rvm gem install mysql2 --version=0.2.7und die obige Zeile zu Ihrer Gemfile hinzufügen.
TrinitronX

Ich hatte heute genau das gleiche Problem, ging auf 3.1 und zurück auf 3.0.7. Dies war die Lösung.
David Ortinau

2
außer dass diese Versionen von mysql2 Blockierungsprobleme auf großen Websites haben
Kevin

Gleiches hier - anscheinend lädt mysql2> 3.0 den AR-Adapter pronto nicht
Julik

3
Weitere Informationen finden Sie in der folgenden Ausgabe von mysql2 auf github, in der steht, dass mysql 0.3.x nur mit Rails 3.1 und höher funktioniert: github.com/brianmario/mysql2/issues/155
Tim Harper



6

Wenn Sie rvm verwenden und möglicherweise mysql2 außerhalb von rvm hinzugefügt haben, führen Sie die folgenden Schritte aus: Bestätigen Sie, dass in Ihrer Gemfile Folgendes angegeben ist:

gem 'mysql2'

oder für Rails2.x:

gem 'mysql2', '~> 0.2.11'

dann:

$ cd RAILS_ROOT
$ gem uninstall mysql2

Select gem to uninstall:
 1. mysql2-0.2.11
 2. mysql2-0.3.6
 3. All versions
> 3 # select "All versions"
$ rvm gemset install mysql2
$ bundle install

Jetzt sollten die Schienen richtig starten.


3

Dies behebt auch das Problem, mit dem ich hatte:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)

Sie müssen tatsächlich Folgendes ausführen: gem installiere mysql2 und füge den gem deiner Konfiguration hinzu.


1
Ich hatte dieses Problem, als ich das mysql2-Gem manuell installierte. Dann habe ich es wie gesagt in der gemfile verwendet und die Bundle-Installation ausgeführt. Es wurde geladen, aber ich bekam den Fehler, keine Verbindung zu mysql.sock herzustellen. Also lief ich dann env ARCHFLAGS = "- arch i386" gem install mysql2 --version 0.2.6 - --with-mysql-config = / usr / local / mysql / bin / mysql_config (ich bin auf einem Mac Pro) und das schien meine Probleme zu lösen. Ran Rails s und hey Presto..Hoffentlich hilft dies jemand anderem :)
Fullstacklife

@dryprogrammers - Ich könnte Ihnen 100+ geben, bitte geben Sie Ihren Kommentar als Antwort ein, er ist auch für Ubuntu 12-10 SEHR relevant. Unter vollständig aktualisiertem Ubuntu 12.10 würde Precise gitlab nicht installiert. Stoßen. Nach vielen Stunden (6-8) des Suchens und Ausprobierens vieler Dinge habe ich Ihren Mac-Hack als letzten Ausweg ausprobiert. LO UND BEHOLD viel, da ich (Husten) Macs überhaupt nicht wirklich mag ... das hat es für mich getan, jetzt kann ich ins Bett gehen ... glücklich! :)
stefgosselin

2

Führen Sie einfach "gem install mysql" aus. Fügen Sie dasselbe in gemfile hinzu und führen Sie das Bundle aus. hat funktioniert


Das hat mich darauf hingewiesen. Ich habe "sudo gem install mysql2" ausgeführt und es hat funktioniert. Vielen Dank!
Tomasz Iniewicz

1
Eine manuelle Edelsteinverwaltung außerhalb einer Gemfile wird nicht empfohlen. Es ist anfällig für Abhängigkeitsprobleme für andere Entwickler oder die Bereitstellung.
Gabe Martin-Dempesy


1

Ich bin ein Anfänger in Ruby, Rails und Linux. Wenn diese Lösung nicht funktioniert hat, übernehme ich keine Verantwortung :)

Schritt 1:

sudo gem uninstall mysql2

Schritt 2:

sudo gem install mysql -v 0.2.7

Starten Sie webrick, wenn das gleiche Problem weiterhin auftritt, installieren Sie die Schienen neu.

Diese Lösung funktioniert bei mir.


1
Ist es nicht generell eine schlechte Praxis, einen Edelstein mit sudo zu installieren? stackoverflow.com/questions/2119064/…
Tass

1

Das gleiche Problem auch für mich. Auf Rails 3.1.rc4 aktualisiert und dann auf 3.0.3 heruntergestuft. Hat für mich gearbeitet.


0

ab 0.3.0 und ActiveRecord 3.1 - Der ActiveRecord-Adapter wurde aus diesem Juwel in ActiveRecord selbst gezogen. Wenn Sie mysql2 mit Rails-Versionen <3.1 verwenden müssen, stellen Sie sicher, dass Sie gem "mysql2", "~> 0.2.7" in Ihrer Gemfile angeben

Die fehlende Datei ( no such file to load) befindet sich in den Versionen vor 0.3.0 von mysql2.

zitiert aus der Dokumentation von mysql2

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.