Ich habe seit einiger Zeit damit zu kämpfen.
Ich habe Rails 3, gem, mysql auf meiner Snow Leopard-Maschine installiert. Alles lief gut, bis ich mein erstes Projekt erstellte und versuchte zu laufen
rails server
Beim Ausführen bekomme ich:
jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
jontybrook$
Soweit ich das beurteilen kann, liegt das Problem beim mysql2-Juwel. MySQL scheint gut zu laufen und meine Gemfile verweist auf mysql2, meine database.yml-Datei scheint auch in Ordnung zu sein.
Der Fehler erwähnt
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Und doch
jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb em.rb error.rb mysql2.bundle result.rb
MySQL2.bundle ist da!?
Wenn ich das alte MySQL-Juwel verwende, bootet WEBrick einwandfrei. Aber das ist nicht ideal, oder?
Ich habe alles versucht, was Google mir geben kann! Jede Hilfe sehr geschätzt.
quelle
/usr/lib
, wird dieser Link zu dem Speicherort aufgelöst, an dem er tatsächlich installiert ist. Unter OS X/usr/local/mysql/lib
ist dies normalerweise der Fall , auf den dieser Befehl verweist. Wenn Ihre Bibliothek an einem anderen Speicherort installiert ist, müssen Sie diesen Befehl anpassen. Geben Sielocate libmysqlclient.18.dylib
das erste Argument nach dem Ergebnis ein und ersetzen Sie es-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
Was ist falsch?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Dadurch wird der Prozess der Indizierung Ihrer Festplatte gestartet, sodass derlocate
Befehl in Zukunft funktioniert. In den meisten Fällen, aber ich denke , Sie werden das nicht tun müssen, und kann nur mit dem Befehl , dass luvlss Gewähr zur Verfügung gestellt.Ich habe das schließlich gelöst!
Ich habe Ruby and Rails unter RVM neu installiert. Ich verwende Ruby Version 1.9.2-p136.
Nach der Neuinstallation unter rvm war dieser Fehler immer noch vorhanden.
Am Ende war der magische Befehl, der es löste:
Hoffe das hilft jemand anderem!
quelle
mysql2-0.2.6/lib/mysql2/mysql2.bundle
wo immer Ihre Edelsteine installiert sind.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Dieser Fix hat bei mir sehr gut funktioniert:
Fügen Sie Ihrem ~ / .profile Folgendes hinzu
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
quelle
Für mich war dies nur, weil ich MySQL aktualisiert hatte, aber den MySQL2-Edelstein nicht aktualisiert hatte - eine Neuinstallation des Edelsteins wird das Problem beheben ...
gem pristine mysql2
quelle
Ich habe das gleiche Problem. Es sieht so aus, als ob die libmysqlclient-Bibliothek nicht gefunden werden kann. Ein vorübergehender Fix, der für mich funktioniert hat, ist der folgende:
Ich bin nicht sicher, wo die Konfiguration den Ladepfad angibt oder worauf er eingestellt ist, aber meine MySQL-Installation schien nicht darin enthalten zu sein. Ich werde wieder posten, wenn ich eine dauerhaftere Lösung finde.
Bearbeiten: Tatsächlich scheint dieses Update das Problem genauer zu beheben.
quelle
Fügen Sie Folgendes zu Ihrem hinzu
~/.bash_profile
:Das hat bei mir funktioniert
quelle
In OSX El Capitan Update, wenn Sie dies tun:
es wirft einen Fehler wie
Um dies zu vermeiden, können Sie zunächst
libmysqlclient.18.dylib
mit dem Befehl suchenIn meinem Fall kehrte es zurück
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Also werden
usr/lib/
wir stattdessen einen Symlink erstellen, um Folgendes zuusr/local/lib/
mögen:Weitere Details: https://forums.developer.apple.com/thread/7935
quelle
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
Ordner seinDie folgenden Zeilen funktionieren für mich. Ich benutze Mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
quelle
Bin gerade auf dieses Problem gestoßen. Alles was ich tun musste, ist mysql2 gem zu deinstallieren und neu zu installieren. Hoffe das funktioniert für andere Leute
quelle
All versions
an der Eingabeaufforderung geantwortet hat . Ich habe dann Brew Upgrade MySQL ausgeführt und dann Gem MySQL2 installiert.So hat es bei mir funktioniert:
Ich habe den folgenden Befehl ausgeführt
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Meine Umgebungen:
$ Rails -v Rails 3.0.6
$
mysql --version mysql Ver 14.14 Distrib 5.5.11 für osx10.6 (i386) mit readline 5.1
$ ruby -v
ruby 1.9.2p180 (2011-02-18 Revision 30909) [x86_64-darwin10.7.0]
Hoffe das hilft jemandem.
quelle
Danke, Ogapo! Das Exportieren dieses Alias funktionierte für mich, und dann folgte ich dem Link, und in meinem Fall befand sich das mysql2.bundle in /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Ich habe das install_name_tool angepasst, um dieses Bundle anstelle eines in ~ / .rvm zu ändern, und habe dafür gesorgt, dass es so funktioniert, wie es gemacht werden sollte.
Also jetzt:
quelle
Hallo, es hat bei mir über den empfohlenen Link von Fredy Andersen funktioniert
Ich musste nur auf meine Version von MySQL umsteigen, im Befehl, danke
quelle
Ich habe dieses Problem gelöst, indem ich mein Gemset für mein aktuelles Projekt gelöscht und neu erstellt und die Bundle-Installation erneut ausgeführt habe. Ich glaube, ich habe es durch die Installation einer neueren Version von MySQL verursacht.
quelle
Ich hatte dieses Problem bei der Arbeit mit Django. Ich habe
brew
viele meiner Open Source-Programme installiert und musste seit derbrew
Installation Folgendes tunmysql
:Achten Sie darauf, durch Ihre Version der Bibliotheken zu ersetzen!
quelle
bundle install mysql --force
half mir. Es wurden Abhängigkeiten neu installiert, die als Folge davon verschwunden sindbrew uninstall mysql
.quelle
Unknown switches '--force'
Jonty, ich kämpfe auch damit.
Ich denke, hier gibt es einen Hinweis:
Beachten Sie, dass der Weg zur Dylib ziemlich kurz ist.
Ich versuche herauszufinden, wo die Anweisungen zur Edelsteininstallation vom Dylib-Pfad abweichen, aber es geht langsam voran, da ich selbst noch nie einen Edelstein gebaut habe.
Ich werde mehr posten, wenn ich mehr finde!
quelle
Ich hatte vor ein paar Tagen genau das gleiche Problem. Ich habe es schließlich geschafft, es zu lösen. Ich bin mir nicht ganz sicher, wie, aber ich werde dir trotzdem sagen, was ich getan habe. Vielleicht hilft es dir.
Ich habe zunächst RVM heruntergeladen. Wenn Sie es noch nicht verwenden, kann ich es nur empfehlen. Grundsätzlich wird eine Sandbox für eine neue separate Installation von Ruby, RoR und RubyGems erstellt. Tatsächlich können Sie mehrere Installationen gleichzeitig durchführen und sofort zueinander wechseln. Es wirkt wie ein Zauber.
Warum ist das nützlich? Weil Sie sich nicht mit der Standardinstallation von Ruby in OS X herumschlagen sollten. Das System hängt davon ab. Lassen Sie die Standardinstallation von Ruby und RoR am besten in Ruhe und erstellen Sie eine neue mit RVM, die Sie für Ihre eigene Entwicklung verwenden können.
Nachdem ich meine separate Ruby-Installation erstellt hatte, habe ich nur RoR, RubyGems und MySQL installiert und es hat funktioniert. Die genauen Schritte, die ich unternommen habe, finden Sie in meiner Frage: Installieren von Rails, MySQL usw. Alles läuft schief
Nochmals: Ich weiß nicht genau, ob dies Ihr Problem lösen wird. Aber es hat sicherlich den Trick für mich getan, und auf jeden Fall ist die Verwendung von RVM sehr zu empfehlen.
quelle
Ich habe immer noch festgestellt, dass es mit den oben genannten Lösungen (zum Beispiel) mit dem Rails-Plugin für TextMate nicht funktioniert hat. Ich habe einen ähnlichen Fehler erhalten (beim Abrufen des Datenbankschemas).
Also, was hat getan, offenes Terminal:
Ersetzen Sie mysql-5.5.8-osx10.6-x86_64 durch Ihren eigenen Pfad (oder mysql).
Dies stellt eine Symbolverknüpfung zur Bibliothek her, jetzt werden Rails über die Befehlszeile ausgeführt sowie TextMate-Plugins wie Ruby-on-Rails-TMBundle .
Um es klar auszudrücken: Dies behebt auch den Fehler, den Sie beim Starten des Rails-Servers erhalten.
quelle
Dies passiert normalerweise, wenn Sie MySQL aktualisieren. Das installierte mysql2-Gem, das auf den alten mysql-Bibliotheken erstellt wurde, kann nicht mit neuen Bibliotheken funktionieren. Ich muss es nur neu installieren.
Deinstallieren Sie mysql2 mit
gem uninstall mysql2
. Dann installieren Sie es mitgem install mysql2
quelle
Ich habe es behoben, indem ich eine .rvmrc-Datei in meinem Projektordner erstellt habe, die Folgendes enthält:
Geben Sie dann meinen Projektpfad ein
dann renne ich
quelle
Meine Version von luvlss 'Befehl:
Mac OSX 10.10.5
MySQL 5.6.27
Passagier 5.0.21
sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Wenn Sie wie ich viele verschiedene Links ausprobieren, räumen Sie auf mit:
sudo unlink /usr/lib/libmysqlclient.18.dylib
quelle
Öffnen Sie ein Terminal und führen Sie Folgendes aus:
Es sollte funktionieren.
quelle
Wenn Sie OSX verwenden und MySQL mit Brew installiert haben, können Sie:
Wenn Sie Probleme mit der Version haben (ich hatte MySQL 5.7 ausgeführt, während mein Edelstein 5.6.25 benötigt), können Sie
quelle
Für mich musste ich mysql manuell deinstallieren
quelle