Ich habe einige Probleme beim Versuch, mysql2
gem for Rails zu installieren. Wenn ich versuche, es durch Ausführen von bundle install
oder gem install mysql2
zu installieren, erhalte ich den folgenden Fehler:
Fehler bei der Installation von mysql2: FEHLER: Fehler beim Erstellen der systemeigenen Erweiterung.
Wie kann ich das beheben und mysql2
erfolgreich installieren?
Auf Ubuntu/Debian und anderen Distributionen mit aptitude:
Sudo apt-get install libmysql-Ruby libmysqlclient-dev
Das Paket libmysql-Ruby
wurde eingestellt und durch Ruby-mysql
ersetzt. This Hier habe ich die Lösung gefunden.
Wenn der obige Befehl nicht funktioniert, weil libmysql-Ruby
nicht gefunden werden kann, sollte Folgendes ausreichen:
Sudo apt-get install libmysqlclient-dev
Unter Red Hat/CentOS und anderen Distributionen mit yum:
Sudo yum install mysql-devel
Unter Mac OS X mit Homebrew :
brew install mysql
Ich bin auf einem Mac und benutze homebrew um Open Source Programme zu installieren. Ich musste Mac Dev Tools installieren, um Homebrew zu installieren, aber danach war es ganz einfach:
brew install mysql
um mysql zu installieren. Ich hatte seitdem kein Problem mit MySQL-Edelsteinen mehr.
Hier ist eine Lösung für die Windows-Benutzer, hoffe, es hilft!
Railsinstaller installieren -> www.railsinstaller.org (Ich habe es auf c:\Rails installiert)
MySQL installieren (Ich habe MySQL 5.5 verwendet) -> dev.mysql.com/downloads/installer/
--- für die mySQL-Installation ---
Wenn Sie diese beiden Dateien noch nicht installiert haben, benötigen Sie sie möglicherweise, um MySQL zum Laufen zu bringen
vcredist_x86.exe -> http://www.Microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe -> http://www.Microsoft.com/download/en/details.aspx?id=17718
Verwenden Sie die Standardinstallation von Developer Machine- MySQL Server Config -
Port: 3306
Windows-Dienstname: MySQL55
mysql root pass: root (Sie können dies später ändern)
(Benutzername: root)
- MySQL Server Config ---- für die mySQL-Installation ---
--- Installiere den mysql2 Gem ---
Wichtig: Mach das mit Git Bash Command Line (dies wurde mit Railsinstaller installiert) -> start/Git Bash
gem install mysql2 - '--with-mysql-lib = "c:\Programme\MySQL\MySQL Server 5.5\lib" --with-mysql-include = "c:\Programme\MySQL\MySQL Server 5.5\include "'
Nun sollte der Edelstein richtig installiert sein
Kopieren Sie zuletzt die Datei libmysql.dll von
C:\Programme\MySQL\MySQL Server 5.5\lib
zu
C:\Rails\Ruby1.9.2\bin
--- Installiere den mysql2 Gem ---
Sie können jetzt Ihre Rails App mit MySQL verwenden, wenn Sie nicht sicher sind, wie Sie eine Rails 3 App mit erstellen sollen MySQL weiterlesen ...
--- Holen Sie sich eine Rails 3-App mit MySQL ---
Öffnen Sie die Eingabeaufforderung (nicht Git Bash) -> start/cmd
Navigieren Sie zu Ihrem Ordner (c:\Sites)
Neue Rails App erstellen
Rails new world
Löschen Sie die Datei c:\Sites\world\public\index.html
Bearbeiten Sie die Datei c:\Sites\world\config\routes.rb
füge diese Zeile hinzu -> root: to => 'cities # index'
Öffnen Sie die Eingabeaufforderung (erzeugen Sie Ansichten und Controller)
Rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
Bearbeiten Sie die Datei c:\Sites\world\app\models\city.rb wie folgt
class City < ActiveRecord::Base
set_table_name "city"
end
Bearbeiten Sie die Datei c:\Sites\world\config\database.yml wie folgt
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
zu gemfile hinzufügen
gem 'mysql2'
Öffne Eingabeaufforderung Windows Cmd, nicht Git Bash (starte deine App!)
Navigieren Sie zu Ihrem App-Ordner (c:\Sites\world).
Rails s
Öffne deinen Browser hier -> http: // localhost: 30
--- Holen Sie sich eine Rails 3-App mit MySQL ---
Ich habe mehrere Computer, 32- und 64-Bit-Prozessoren, die unter Ubuntu Linux, Maverick (10.10) ausgeführt werden.
Ich hatte das gleiche Problem, und für mich hat das Sudo apt-get install libmysql-Ruby libmysqlclient-dev
den Job gemacht !!!
Ein anderer Weg für MacOS-Benutzer
Wenn Sie "brew" verwendet haben, um mysql zu installieren:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
x.x.x = Version des mysql2-Gems, das Sie installieren möchten
y.y.y = die Version von MySQL, die Sie installiert haben ls /usr/local/Cellar/mysql
, um es zu finden.
Haben Sie versucht, mit
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
geben Sie den Speicherort des Basisverzeichnisses sowie den Pfad zu den MySQL-Bibliotheken an, die für den Abschluss der Gem-Installation erforderlich sind.
Quellen: MySQL Gem Install FEHLER: Fehler beim Erstellen der nativen Erweiterung von MySQL GemMySQL-Foren :: Ruby :: Hilfe beim Installieren der MySQL-Bindung für Ruby erforderlich
Wenn Sie yum verwenden, versuchen Sie:
Sudo yum install mysql-devel
Wenn Sie immer noch Probleme haben ...
Versuchen Sie die Installation
Sudo apt-get install Ruby1.9.1-dev
Dies löste mein Problem einmal in Windows:
subst X: "C:\Program files\MySQL\MySQL Server 5.5"
gem install mysql2 -v 0.x.x --platform=Ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt
subst X: /D
Ich hatte dieses Problem unter Windows 7. Dies ist anscheinend ein Inkompatibilitätsproblem und die Lösung lautet wie folgt:
Laden Sie die Datei libmySQL.dll
von einem älteren InstantRails-Installationsprogramm herunter. Es ist im InstantRails GitHub-Repository verfügbar.
Kopieren Sie anschließend diese Datei in Ihren Ruby/bin-Ordner.
Nun bist du gut zu gehen;)
Sie müssen einige Abhängigkeiten installieren
Sudo apt-get install libmysql-Ruby libmysqlclient-dev
Unter Debian Stretch war das für mich funktionierende Paket default-libmysqlclient-dev
Sudo apt-get update && apt-get install -y default-libmysqlclient-dev
Ich habe auch diesen Fehler bekommen. Gelöst durch die Installation von Entwicklungspaketen. Ich benutze Arch und es war:
Sudo pacman -S base-devel
welche installiert:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
aber ich denke es brauchte eigentlich make und gcc. Die Fehlerausgabe lautete (unter anderem auf meinem Computer):
Msgstr "Sie müssen zuerst die Entwicklungstools installieren."
Es war also eine naheliegende Entscheidung und hat geholfen.
Ich hatte diesen Fehler auf meinem Mac und musste ein Upgrade von MySQL 32bit auf MySQL 64bit durchführen, damit dieser Fehler verschwindet. Ich habe OSX 10.6 auf einem Intel MacBook Pro mit Ruby 1.9.2 und Rails3.0.0 ausgeführt
Ich musste auch xcode installieren, um Unix-Dienstprogramme wie "make" zu erhalten, die zum Kompilieren des Gems erforderlich sind.
sobald dies erledigt war, konnte ich gem install mysql und gem install mysql2 fehlerfrei ausführen.
In meinem Fall hat dies geholfen:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
Dann:
gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
Ergebnis:
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
Siehe diesen Beitrag (WARNUNG: Japanische Sprache im Inneren).
Lösung funktioniert nur unter Mac OS X
Wenn Sie MySQL mit Homebrew installiert haben, hat es für mich funktioniert, MySQL zu deinstallieren und MySQL Community Edition über die MySQL-Website zu installieren ( https://www.mysql.com/ ).
Nach der Installation geben Sie einfach den Befehl erneut in gem install mysql2
ein oder, falls erforderlich, in Sudo gem install mysql2
, wenn Sie Probleme mit verweigerten Berechtigungen haben.
Für Windows-Benutzer: Sie legen die Lib und den Pfad Ihres MySQL fest. Wenn Sie beispielsweise xampp verwenden, können Sie Folgendes festlegen:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
libmysql-Ruby
wurde eingestellt und ersetzt. Neuer Befehl:
Sudo apt-get install Ruby-mysql libmysqlclient-dev
Ich habe das Juwel unter Mac OS X 10.6.6 erstellt, indem ich 1) das Developer Tools-Paket installiert habe. 2) das aktuelle MySQL-Paket (in meinem Fall 5.5.8) von Source heruntergeladen habe. 3) das cmake-Tool von cmake.org installiert habe. 4 ) Befolgen Sie die Anweisungen in Abschnitt 2.11 von INSTALL-SOURCE aus den mysql-Distributionsdateien. 5) Sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
Der Edelstein wurde erfolgreich erstellt, es gibt jedoch zwei Fehler in der Dokumentation, über die sich rdoc und ri beschweren. Aber jetzt, wenn ich versuche, "mysql2" zu fordern, bekomme ich eine
LoadError: no such file to load -- mysql2/mysql2
Ich hatte gehofft, der Fehler, den ich bekommen würde, war, dass die libmysqlclient.16.dylib nicht gefunden werden konnte, weil wir das in einem anderen Beitrag herausgefunden haben (Suche nach install_name_tool).
In meinem $ PATH ist/usr/local/mysql enthalten (dort befinden sich mein Quellcode und meine erstellten Dateien), also bin ich ein bisschen ratlos. Wenn jemand irgendwelche Gedanken hat, schaue ich nach ein paar Stunden Schlaf wieder vorbei.
Wenn die Fehlermeldung weiterhin angezeigt wird, führen Sie die Schritte zur Installation von mysql2 gem auf Rails 3 on - aus.
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-Ruby-192-and.html
wo die meisten Benutzer in der Lage waren, mysql2 gem zu installieren.
lade die richtige Version von mysqllib.dll herunter und kopiere sie dann nach Ruby bin funktioniert wirklich bei mir. Folgen Sie diesem Link plases mysql2 gem für falsche mysql-Client-Bibliothek kompiliert
Nachdem Sie die Probleme mit mysql-dev behoben haben, müssen Sie möglicherweise die fehlerhafte Installation von mysql2 entfernen. Schauen Sie sich die Meldungen nach der Installation von $ bundle genau an. Möglicherweise müssen Sie
rm -rf vendor/cache/
rm -rf ./Zentest
Dies löscht die fehlerhafte mysql2-Installation, so dass eine endgültige $ bundle-Installation eine gute erstellen kann.
Ich wollte diese Antwort nur speziell für Mac-Benutzer hinzufügen.
Mein Server lief einwandfrei, bis ich meinen xcode aktualisiert habe. Beim Start meines Rails Servers wurde der Fehler folgendermaßen angezeigt
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/Ruby-1.9.3-p448/bin/Ruby extconf.rb --with-mysql-
checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/Ruby-1.9.3-
p448/lib/Ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an
executable file. (RuntimeError)
Am Ende der Fehlermeldung wurde vorgeschlagen, mysql2 gem zu installieren. Als ich versuchte, es zu installieren, bekam ich den Fehler wie oben in dieser Frage erwähnt. Der Fehler, den ich bekam, ist wie folgt
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
Also, wie in diesem Beitrag vorgeschlagen, habe ich versucht, "MySQL zu installieren" und das hat aufgehört zu sagen, dass MySQL-Version so und so bereits installiert ist. Aber es gab eine Warnung davor
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
Dann habe ich diesen Sudo xcodebuild -license
ausprobiert und am Ende 'agree' eingegeben. Sie müssen root sein, um der Lizenz zuzustimmen.
Danach habe ich nochmal versucht das Bundle zu installieren und dann funktioniert alles wie gewohnt. [Auch aufgrund dieser Xcode-Aktualisierung hatte ich Probleme mit meinem Turm.]
Bekam die "Sie müssen zuerst Entwicklungstools installieren." Fehler beim Installieren von mysql2 gem nach dem Upgrade auf Mac OS X Mountain Lion. Durch dieses Upgrade werden anscheinend die Befehlszeilen-Compiler entfernt.
Reparieren:
Sie bekommen dieses Problem, weil Sie MySql nicht installiert haben. Vor der Installation von mysql2 gem. Installieren Sie MySQL. Danach wird mysql2 gem installiert.
Für MacOS Mojave:
gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include