Ich fange gerade mit Ruby (und Rails) an. Ich habe das Setup gemäß http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems mit durchgeführt rvm
. Ich habe alles gut mit SQLite.
Jetzt möchte ich versuchen, Dinge auf MySQL umzustellen, da ich damit den größten Teil meiner Entwicklung mache. In meiner Gemfile habe ich sqlite durch mysql2 ersetzt:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Aber wenn ich versuche, die Datenbank für Rails in MySQL zu erstellen, bekomme ich:
$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Ich habe andere Beiträge gesehen, in denen empfohlen wurde, MySQL über Homebrew neu zu installieren (meine wurde über eine herunterladbare DMG installiert), aber ich würde es vorziehen, dies nicht zu tun, da ich bereits mehrere andere Datenbanken für andere Nicht-Ruby-Projekte darin habe.
Ich habe tatsächlich die Datei, nach der Rails sucht; Es ist installiert in /usr/local/mysql/lib/libmysqlclient.18.dylib
. Wie kann ich Rails am besten mitteilen, wie es zu finden ist?
quelle
Antworten:
Die Lösung ist ziemlich einfach; Fügen Sie den Bibliothekspfad in Ihre Datei ~ / .bash_profile oder ~ / .profile ein:
Wenn es immer noch nicht funktioniert (diese Arbeit für mich):
Es gibt viele Blogs mit
install_name_tool
, die für mich nicht funktionieren, weil ich auf OSX Lion bin:quelle
.bash_profile
dies nicht wirklich zutrifft.usr/lib
mehr erstellen, aber ein Symlink zuusr/local/lib
wird funktionieren:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
In El Capitan habe ich bekommen
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
In El Capitan gibt es
/usr/lib/
jetzt eine eingeschränkte Flagge, auf die nicht geschrieben werden kann, ohne die Sicherheit zu deaktivieren. Deshalb habe ich/usr/local/lib
stattdessen einfach den Link eingefügt.Der Rails-Server läuft wieder einwandfrei.
quelle
Während der Titel dieser Frage genau das Problem beschreibt, auf das ich gestoßen bin, unterscheiden sich die Umstände von denen, die in den vorherigen Antworten beschrieben wurden, und ebenso die Lösung.
In meinem Fall (El Capitan, MySQL über Homebrew installiert) führte a dazu,
brew update && brew upgrade
dass das MySQL-Paket auf 5.7.10 (von 5.6.x) aktualisiert wurde.Das Upgrade wurde
libmysqlclient.18.dylib
ersetzt durchlibmysqlclient.20.dylib
, aber dasmysql2
Juwel war immer noch auf das erstere angewiesen.Um das Problem zu beheben, habe ich:
gem uninstall mysql2 && gem install mysql2
Bitte beachten Sie, dass ähnliche Probleme bei verschiedenen von Homebrew verwalteten Bibliotheken auftreten können ( siehe beispielsweise meine eigene Antwort darauf ).
quelle
pip uninstall mysqlclient
undpip install mysqlclient
auch gearbeitet haben.Das hat bei mir funktioniert. Ich habe MySQL von einer dmg-Datei installiert.
quelle
Hat für mich gearbeitet. Alle ähnlichen taten es nicht.
quelle
Ich bin auf dieses Problem gestoßen, nachdem MySQL vollständig entfernt und anschließend neu installiert wurde. Speziell:
Ich hatte meine Rails-App noch nicht einmal berührt.
Die Neuinstallation des
mysql2
Edelsteins löste dieses Problem.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
quelle
Wenn Sie MySQL verwenden, das von HomeBrew in El Capitan installiert wurde, sollten Sie es wie folgt verknüpfen:
quelle
Für MySql 5.6 von DMG auf Mavericks installiert
quelle
Ich bestätige, dass der Patch von Abhishek funktioniert .
es funktioniert auch für Yosemite.
Hinweis: Anstatt auf eine bestimmte Version von MySQL zu verlinken, verwenden Sie die Tatsache, dass MySQL bereits einen Symlink erstellt hat:
Diese Lösung funktioniert für Xcode und C API.
quelle
Für diejenigen, die Gebräu verwenden. Verknüpfen Sie einfach Ihre MySQL-Version mit der Option "--force".
quelle
brew link [email protected] --force
. Hat perfekt funktioniert.Um sicherzugehen, welcher Symlink benötigt wird (abhängig von der MySQL-Version und der OS-Version):
und so :
quelle
Das funktioniert bei mir:
quelle
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Ich verwende Rails REE (2.3.4) für ein Legacy-System, das wir haben. Nach dem Upgrade auf El Capitan führte das Ausführen von script / console zu einem Fehler und meine App wurde nicht mehr gestartet (mit pow):
Aus diesem Thread oben habe ich herausgefunden, dass ich diesen Befehl im Terminal ausgeben muss:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Dieser Befehl hat einen Fehler erzeugt: "ln: /usr/lib/libmysqlclient.18.dylib: Operation nicht erlaubt". Ich habe diesen Fehler noch nie gesehen.
Nach einigem Graben fand ich diesen Artikel: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html und folgte dem Anweisungen zum Ausschalten von SIP (El Capitans neuer Systemintegritätsschutz). Nach dem Ausschalten von SIP und nach dem Neustart funktionierte der Befehl ln einwandfrei. Dann habe ich SIP ausgeschaltet. Jetzt ist alles in Ordnung. Meine App läuft erneut mit pow und ohne Fehler beim Ausführen von Skript / Konsole. Ich hoffe das hilft dir.
quelle
Wenn Sie auf Mac Sierra Homebrew verwenden, gehen Sie wie folgt vor:
quelle
und
arbeitete für mich.
quelle
Das hat bei mir funktioniert. Alles was ich tun musste, ist mysql2 gem zu deinstallieren und es mit den folgenden Befehlen erneut zu installieren
quelle
Ich verwende Mac OS und war auch nach dem Deinstallieren / Entfernen aller MySQL- und MAMP-Dateien mit diesem Fehler konfrontiert. Früher habe ich installiert
brew install mysql
und auch verwendetMAMP
. Addling Softlink hat bei mir nicht funktioniert.Es wurde nur durch Entfernen aller vorhandenen MySQL gelöst. und installieren Sie dann MySQL über MySQL von hier aus .
quelle
Verwenden Sie dies über Ihre Befehlszeile:
versucht auf wenigen Computern mit Außenseiter funktioniert immer
quelle
Wenn Sie Bitnami RubyStack verwenden und auf ein ähnliches Problem gestoßen sind. Probier diese
quelle
Mein Problem beim Laden dieser Bundle-Datei war ein schlechter Symlink. Überprüfen Sie also den Link und ersetzen Sie ihn bei Bedarf durch einen neuen. Zu diesem Zeitpunkt passte alles zusammen. Ich bin mir nicht sicher, wie das passiert ist, aber es ist passiert. Zum ersten Mal ist ein Syntaxfehler so aufgetreten.
quelle
Ich habe mit dem Befehl rail g model gearbeitet und diesen Fehler erhalten:
Ich habe es versucht und es hat für mich funktioniert. Ich habe Mavericks 10.9.5 verwendet
Vielen Dank!
Jetzt verwende ich Yosemite 10.10.5 und habe den gleichen Fehler erhalten. Daher habe ich diesen Befehl nur auf dem Terminal ausgeführt und er wurde erfolgreich behoben.
Sie können auch versuchen:
Beide funktionieren gut für mich. Hoffe es könnte nützlich sein!
quelle
Ich habe dieses Problem "Bibliothek nicht geladen: libmysqlclient.18.dylib" beim Importieren von MySQLdb aus MySQL For python3 :
Die Lösung funktioniert für mich: Mac OS X 10.11.1 Python3.5
quelle
Das einzige, was für mich funktioniert hat, ist:
Ersetzen Sie die Pfade von MySQL und Edelsteinen entsprechend Ihrem System.
quelle
Nachdem ich viel gegoogelt und alles oben versucht hatte ... war das einzige, was mein Problem löste, dieser Befehl:
Ich benutze ein MacBook Pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Do 23. Juni 18:25:34 PDT 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 Mysql: 5.6.19
quelle
Vielen Dank. Durch ein Homebrew-Upgrade traten bei meinen Rails-Apps Probleme auf meinem Mac auf. Ich habe MySQL (5.7) von der Quelle neu installiert, dann musste ich dies tun
basierend auf dem, was ich oben gelesen habe und in meiner Gemfile
und in database.yml
quelle
Es gibt bereits viele Antworten auf diese Frage, insbesondere auf diese https://stackoverflow.com/a/10847618/5515861 . Ich möchte nur ein paar Notizen hinzufügen. Wenn Sie einen Mac verwenden, weiß ich nicht, wie Sie MySQL installieren, aber als Erstes müssen Sie untersuchen, wo sich Ihre MySQL-Installation befindet. Für mich wird MySQL mit
brew
for-Version installiert5.7
, und der Speicherort ist/usr/local/opt/[email protected]/
, also fügen Sie Folgendes zu meinem hinzu~/.zshrc
.Ich hoffe, Sie beheben Ihre Probleme 😁
quelle