Ich habe mit der CD, die wir bei WWDC bekommen haben, ein Upgrade auf Snow Leopard durchgeführt.
Der Versuch, einige meiner Rails-Apps auszuführen, beschwert sich jetzt über SQL
(in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/
-- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
(See full trace by running task with --trace)
Ich hätte schwören können, dass ich das schon einmal behoben habe. Das Problem ist, dass
sudo gem install mysql
funktioniert nicht und gibt den Fehler:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/opt/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
Hat jemand schon MySQL dazu gebracht, mit Schienen auf Schneeleoparden zu arbeiten? Wenn ja, wie ist Ihr Setup und was kann ich tun, um es zu reproduzieren?
mysql
ruby-on-rails
ruby
osx-snow-leopard
coneybeare
quelle
quelle
Das Neuerstellen von MySQL als 64-Bit oder das Installieren der 64-Bit-Version ist wichtig, aber Sie müssen auch sicherstellen, dass Sie die nativen Teile des MySQL-Gems auch als 64-Bit erstellen (dies gilt nicht, wenn Sie auf einem der ursprünglichen Intel Core Duo-Macs arbeiten ).
Hier ist der magische Befehl:
env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Sie sollten die ARCHFLAGS wie oben gezeigt einstellen, wenn Sie eine Edelsteininstallation mit nativen Komponenten auf Snow Leopard durchführen.
quelle
Wenn Sie Bundler verwenden, können Sie "Bundle-Konfiguration" verwenden, um die richtigen Build-Argumente für MySQL wie folgt festzulegen:
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
quelle
Ich habe lange damit gekämpft und es endlich auf Snow Leopard zum Laufen gebracht. Am Ende habe ich Ruby, RubyGems und MySQL von der Quelle aus installiert ( Informationen zur Installation von Ruby und RubyGems finden Sie im Hivelogic-Tutorial . Das MySQL-Tutorial ist unten verlinkt). Ich bekam endlich das Juwel zu installieren, aber ich bekam immer noch
dyld: lazy symbol binding failed: Symbol not found: _mysql_init Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle Expected in: flat namespace dyld: Symbol not found: _mysql_init Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle Expected in: flat namespace Trace/BPT trap
Ich habe endlich das gelöscht
mysql.bundle
(ich habe keine Ahnung, wofür das ist) und alles hat funktioniert.sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Hoffe das hilft jemandem.
quelle
Ich habe dieses Problem oft gesehen. Fast jedes Mal, wenn ich MySQL auf einer Maschine baue. Ich denke, Sie müssen Ihre mysqlconfig als Teil des gem install Befehls übergeben.
sudo gem install mysql -- --with-mysql-config=/your/mysql/config Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/ruby --with-mysql-config
Denken Sie daran, dass Sie MySQL-Entwicklungsdateien benötigen, um dieses Juwel erstellen zu können.
quelle
Ich hatte Probleme, meine Konfiguration nach der Installation von Schneeleopard zum Laufen zu bringen. Ich habe MAMP unter http://www.mamp.info gefunden und es bündelt Apache, PHP und MySQL. Sie installieren es wie eine Anwendung und es funktioniert einfach. Vielleicht lohnt es sich, es auszuprobieren, und es ist kostenlos.
Gittergewebe
quelle
Ich dachte, ich würde hier meine eigene Frage beantworten. Es scheint, als ob das Problem nicht in MySQL liegt, sondern in den MySQL-Ruby-Bindungen. Ich habe das herausgefunden, weil es eine Verbindung herstellen konnte, als ich Querius (meine MySQL-GUI) angeschlossen habe.
So erstellen Sie die Bindungen aus dem Quellcode:
cd /tmp wget http://www.tmtm.org/en/ruby/mysql/ruby-mysql-0.2.6.tar.gz tar xvfz ruby-mysql-0.2.6.tar.gz cd ruby-mysql-0.2.6 ./configure make sudo make install
Es gibt viele Bibliotheken, die ich aus der Quelle auf Snow Leopard bauen muss, und sie tauchen immer wieder auf. MacPorts scheint nicht für alle Bibliotheken aktualisiert zu sein, also mache ich es alleine. Als nächstes: freetype ( http://download.savannah.gnu.org/releases-noredirect/freetype/ )
quelle
Ich bin wie in diesem Beitrag beschrieben vorgegangen ( http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/ ), und jetzt funktioniert alles einwandfrei.
Denken Sie daran, in seinem Befehl nach Tippfehlern zu suchen, um den MySQL-Treiber zu installieren.
quelle
Ich hatte das gleiche Problem und hier ist, was für mich funktioniert hat.
Installieren Sie Snow Leopard und das 64-Bit-MySQL-DMG.
Erstellen Sie /etc/my.cnf, um auf mein vorheriges MySQL-Datenverzeichnis (wie hier beschrieben ) zu verweisen, und führen Sie es aus
sudo mysql_upgrade
.Öffnete IRB und installiere alle meine Edelsteine neu mit (via blog.costan.us/2009/07/rebuild-your-ruby-gems-if-you-update-to.html).
`gem list`.each_line {| line | System 'sudo gem install # {line.split.first}'}
Deinstallierte die von mir installierten MySQL-Gems.
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Damit scheint bisher alles zu funktionieren. * Holz klopfen *
quelle
Für den Fall, dass Sie lieber zu Hause brauen , anstatt MySQL manuell zu installieren.
Deinstallieren Sie das vorhandene MySQL-Juwel (falls vorhanden):
sudo gem uninstall mysql
Suchen Sie die Datei 'mysql_config':
find /usr -name 'mysql_config'
Installieren Sie mysql gem neu:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config
Hinweis: Ersetzen Sie ihn
/usr/local/bin/
durch den entsprechendenmysql_config
Pfad in Schritt 2. Auch in meinem Blog .quelle
Ian Selby Danke viel , aber ich hatte das entfernen
sudo
von vorsudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Ich habe ein Gemset installiert und verwende rvm, das Sie meiner Meinung nach auffordert, das Schlüsselwort sudo nicht zu verwenden. Vielen Dank.
quelle
Ich habe es so gelöst:
quelle
Nachdem ich einige Jahre eine Pause von Rails gemacht hatte, verbrachte ich nur einige Zeit damit, meine Entwicklungsumgebung einzurichten. Ich dachte also, ich würde ein Tutorial erstellen, wie man die neueste Version von Rails 3, MySQL und RVM auf SnowLeopard installiert, um hoffentlich anderen Zeit zu sparen, die in meiner Position sind.
Es funktioniert ab dem 21. August 2011 mit Rails 3.0.10, MySQL 5.5.15 und RVM 1.7.2. Es sollte mit zukünftigen Versionen von Rails 3.0.x, MySQL 5.5.x und RVM 1.7.x funktionieren.
Installieren Sie XCode, falls noch nicht installiert. Ich habe 4.0.2 verwendet. Leider wurde dies jetzt von Apple zurückgezogen, ist aber möglicherweise an anderer Stelle im Internet verfügbar. Version 3.2.x kann kostenlos von Apple heruntergeladen werden, aber ich habe es mit diesem Tutorial nicht getestet, es funktioniert wahrscheinlich auch.
Installiere rvm :
user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) user$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile user$ source .bash_profile
Installieren Sie eine Version von Ruby (z. B. 1.9.2) in rvm. Hier finden Sie grundlegende Anweisungen zur Verwendung .
user$ rvm install 1.9.2 user$ rvm use 1.9.2
Erstellen Sie ein Gemset für den in Schritt 2 installierten RVM-Ruby (x ist die Versionsnummer).
user$ rvm gemset create rails30x user$ rvm 1.9.2@rails30x
Installieren Sie Rails 3.0.x (x ist die Versionsnummer).
user$ gem install rails -v 3.0.x.
Laden Sie das MySQL 5.5.x-Paket, das Startelement und den Einstellungsbereich herunter und installieren Sie es . Alle drei sind in der DMG-Installationsdatei enthalten. Installieren Sie auch MySQL WorkBench.
Suchen Sie nach / usr / local / mysql-version-name / support-files (fügen Sie den richtigen MySQL-Verzeichnisnamen ein) und bearbeiten Sie mysql.server (mit Root-Rechten). Suchen Sie um die Zeile 46 herum die Zeilen mit der Aufschrift:
und ändern Sie sie in Lesen (Einfügen des richtigen MySQL-Verzeichnisnamens):
basedir=/usr/local/mysql-version-name datadir=/usr/local/mysql-version-name/data
Speicher die Datei. MySQL kann jetzt über den Einstellungsbereich gestartet werden.
Installieren Sie den Edelstein mysql2, damit Rails 3 MySQL verwenden kann (siehe nächster Schritt). Zunächst müssen Sie festlegen
DYLD_LIBRARY_PATH
, dass das MySQL-Bibliotheksverzeichnis enthalten ist. Bearbeiten Sie dazu Ihr ~ / .bash_profile in Ihrem Home-Ordner und fügen Sie Folgendes hinzu (geben Sie den richtigen MySQL-Verzeichnisnamen ein):export DYLD_LIBRARY_PATH=/usr/local/mysql-version-name/lib:$DYLD_LIBRARY_PATH
Ohne die Aufnahme des Verzeichnisses in DYLD_LIBRARY_PATH würde eine Meldung angezeigt, dass die Bibliothek nicht gefunden wurde, und der Server würde abgebrochen.
Installiere den
mysql2
Edelstein. (Ab Mai 2011 ist Version 0.2.7 die neueste Arbeitsversion mit Rails 3.0.x).user$ gem install mysql2 -v 0.2.7
Erstellen Sie eine Rails-App und die entsprechende Datenbank (appname_development).
user$ rails new appname
Fügen Sie dies dem Gemfile der App hinzu:
gem 'mysql2', "0.2.7"
Fügen Sie dies der database.yml der App hinzu:
development: adapter: mysql2 encoding: utf8 reconnect: false database: appname_development pool: 5 username: username password: pwd host: localhost
Starten Sie die App und aktivieren Sie "Informationen zur Umgebung Ihrer Anwendung". Alles sollte richtig funktionieren.
quelle
Die Anweisungen zum Setzen von ARCHFLAGS und zum Übergeben von --mysql-config = ... schienen nicht genug zu sein, um dies für mich auf Snow Leopard zu lösen. Zusätzlich dazu habe ich hinzugefügt:
DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
zu meinem Bash-Profil, und das löste es für mich.
quelle
Ich habe den Archflags-Trick viele Male mit geringfügigen Abweichungen ausprobiert, aber er hat bei mir nie funktioniert.
Was schließlich tat Arbeit wurde auf die Version von Rubin und Perle mit Schneeleopard installiert Schalt zurück.
Ich hatte meine eigene Version gebaut und installiert, die in jeder Hinsicht für mich funktioniert hat, außer dieser. Da alles andere gut zu funktionieren scheint, kann ich nicht anders, als zu erraten, dass das MySQL-Plugin einige funky Annahmen enthält. Wie auch immer, alles was ich getan habe war switch / usr / bin, um wieder der Erste auf meinem Weg zu sein. Ich hatte Ruby in /usr/local/ruby-1.8.7 und /usr/local/ruby-1.9.1 installiert, um einfach wechseln zu können. Ich dachte, ich würde es erwähnen, da die Archflags-Lösung für viele Menschen zu funktionieren scheint, aber nicht für alle.
quelle
Ich habe das Programm mysql_config von $ MYSQL_HOME / bin in etwas anderes umbenannt, damit das Konfigurationsskript des Gem-Installationsprogramms es nicht finden kann. Obwohl ich die Option libs verwendet habe, hat das Gem-Installationsprogramm immer die Kompilierungseinstellungen aus meiner MySQL-Installation verwendet, die fett binär ist. Die Standard-Ruby-Installation ist jedoch nur x86_64 und daher schlägt die Kompilierung des Gems fehl. Nach dem Umbenennen des Programms mysql_config funktionierte der folgende Befehl einwandfrei und installierte das Juwel:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql
quelle
Wenn Sie das MySQL-Juwel mit RVM installieren, müssen Sie den folgenden Code verwenden, um es zu installieren
sudo env ARCHFLAGS="-arch x86_64" gem install mysql
Diese Methode hat bei mir in Leopard Server funktioniert, keine der oben genannten Methoden hat funktioniert
quelle
Dieser Artikel hat das Problem für mich gelöst :)
http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html
Vor Leopard
sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
Leopard auf einer PPC-Maschine:
sudo env ARCHFLAGS="-arch ppc" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Leopard auf einer Intel-Maschine:
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Schneeleopard (nur bei Intel):
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
quelle