Fehler bei der Installation von MySQL2:Die native Gem-Erweiterung konnte nicht erstellt werden
-
25-09-2019 - |
Frage
Beim Versuch der Installation treten einige Probleme auf mysql2
Juwel für Rails.Wenn ich versuche, es durch Ausführen zu installieren bundle install
oder gem install mysql2
es gibt mir den folgenden Fehler:
Fehler bei der Installation von MySQL2:FEHLER:Die native Gem-Erweiterung konnte nicht erstellt werden.
Wie kann ich das beheben und die Installation erfolgreich durchführen? mysql2
?
Lösung
Auf Ubuntu / Debian und andere Distributionen aptitude:
sudo apt-get install libmysql-ruby libmysqlclient-dev
Package libmysql-ruby
wurde abgeschafft und durch ruby-mysql
ersetzt. Diese ist, wo ich die Lösung gefunden.
Wenn der obige Befehl funktioniert nicht, weil libmysql-ruby
nicht gefunden werden kann, sollte die folgende ausreichend:
sudo apt-get install libmysqlclient-dev
Auf Red Hat / CentOS und andere Distributionen mit yum:
sudo yum install mysql-devel
Unter Mac OS X mit Homebrew :
brew install mysql
Andere Tipps
Ich bin auf einem Mac und Verwendung Homebrew Open-Source-Programme zu installieren. Ich musste Mac Dev Tools installieren, um Homebrew zu installieren, aber danach war es ein einfacher:
brew install mysql
zu mysql installieren. Ich hatte nicht ein MySQL-Juwel Problem da.
hier ist eine Lösung für die Windows-Nutzer , hoffe, es hilft!
Verwenden von MySQL mit Rails 3 unter Windows
-
Installieren railsinstaller -> www.railsinstaller.org (ich es c: \ Rails)
-
Installieren Sie MySQL (I verwendet MySQL 5.5) -> dev.mysql.com/downloads/installer /
--- für mySQL Installation ---
wenn Sie nicht bereits diese beiden Dateien installieren Sie sie benötigen könnten Ihre MySQL geht
zu bekommen 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 Standard-Installation Entwickler-Maschine-MySQL Server Config -
Port: 3306
Windows-Service-Name: MySQL55
mysql Wurzel: root (können Sie diese später ändern)
(Benutzername: root)
-MySQL Server Config ---- für mySQL Installation ---
--- Installieren Sie die mysql2 Gem ---
Wichtig: Tun Sie dies mit Git Bash Command Line (dies wurde mit railsinstaller installiert) -> Start / Git Bash
gem mysql2 installieren - ‚--with-mysql-lib = "c: \ Programme \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-include =" c: \ Programme \ MySQL \ MySQL Server 5.5 \ " ist
Nun sollte das Juwel korrekt installiert
Schließlich kopieren Sie die Datei libmysql.dll
C: \ Programme \ MySQL \ MySQL Server 5.5 \ lib
zu
C: \ Rails \ Ruby1.9.2 \ bin
--- Installieren Sie den mysql2 Gem ---
Sie können jetzt Ihre Rails-Anwendung mit MySQL verwenden, wenn Sie nicht sicher sind, wie Sie eine Rails 3 App erstellen mit MySQL auf ... lesen
--- Holen Sie sich ein Rails 3 app mit MySQL gehen ---
Öffnen Sie die Eingabeaufforderung (nicht Git Bash) -> Start / cmd
Navigieren Sie zu Ihrem Ordner (c: \ Seiten)
Erstellen Sie neue Schienen App
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ügen Sie diese Zeile -> root: to => 'Städte # index'
Öffnen Sie die Eingabeaufforderung (generieren Ansichten und Controller)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
Bearbeiten Sie die Datei c: \ Sites \ Welt \ app \ models \ city.rb zu sehen wie folgt aus
class City < ActiveRecord::Base
set_table_name "city"
end
Bearbeiten Sie die Datei c: \ Sites \ world \ config \ database.yml wie folgt aussehen
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
in dem gemfile
gem 'mysql2'
Öffnen Eingabeaufforderung Fenster cmd, nicht Git Bash (führen Sie Ihre Anwendung!)
Navigieren Sie zu Ihrem App-Ordner (c: \ Sites \ Welt)
rails s
Öffnen Sie Ihren Browser hier -> http: // localhost: 3000
--- Holen Sie sich ein Rails 3 app mit MySQL gehen ---
Ich habe mehrere Computer, 32 und 64-Bit-Prozessor, laufen sie auf Ubuntu Linux, Maverick (10.10) Release.
Ich hatte das gleiche Problem, und für mich, die
sudo apt-get install libmysql-ruby libmysqlclient-dev
hat den Job !!!
Eine andere Möglichkeit für MacOS Nutzer
Wenn Sie verwendet "Gebräu" 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 Juwel Sie installieren möchten
y.y.y = die MySQL-Version Sie installiert haben ls /usr/local/Cellar/mysql
es zu finden.
Haben Sie versucht mit
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
die Lage von thebase Verzeichnis angeben, sowie der Pfad zu den MySQL-Bibliotheken, die notwendig sind, um den Edelstein Installation abzuschließen?
Quellen: MySQL Gem Install ERROR: Fehler beim build gem native Erweiterung Foren MySQL :: Rubin :: Hilfe benötigt, um mit der Installation von MySQL Bindung für Ruby
Wenn Sie mit yum versuchen:
sudo yum install mysql-devel
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
Wenn Sie immer noch Probleme ....
Versuchen Sie,
sudo apt-get install ruby1.9.1-dev
hatte ich dieses Problem auf Windows 7. Dies ist offenbar eine Inkompatibilität Problem und die Lösung ist wie folgt:
Laden Sie die libmySQL.dll
Datei von einem älteren Instant Installer. Es ist von der Instant GitHub Repo .
Als nächstes kopieren Sie die Datei in Ruby / bin-Ordner.
Jetzt sind Sie gut zu gehen;)
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
Ich habe auch diesen Fehler. Gelöst von Entwicklungspaketen installieren. Ich bin mit Bogen und es war:
sudo pacman -S base-devel
, die installiert ist:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
, aber ich denke, es ist tatsächlich benötigt make und gcc. Fehlerausgang sagte (auf meinem Rechner unter anderem):
"Sie haben erste Entwicklungs-Tools installieren."
So war es offensichtlich, dass die Entscheidung und es half.
Sie haben einige Abhängigkeiten installieren
sudo apt-get install libmysql-ruby libmysqlclient-dev
Auf Debian Stretch das Paket, das für mich gearbeitet wurde default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
Ich lief in diesen Fehler auf meinem Mac und fand, dass ich von mysql 32bit mysql 64-Bit-Upgrade erforderlich, um diese Fehler zu erhalten, gehen Sie weg. Ich war mit OSX 10.6 auf einem Intel MacBook Pro mit Ruby 1.9.2 und rails3.0.0
Ich muß auch Xcode installieren, um Unix-Utilities wie „make“ zu erhalten, die erforderlich ist, um die Perle zu kompilieren.
Sobald dies erledigt war ich war in der Lage gem install mysql und gem install mysql2 ohne Fehler ausgeführt werden.
In meinem Fall 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 (ACHTUNG: Japanische Sprache innen).
Für Windows-Benutzer: Sie legen die lib und umfassen Pfad Ihrer mysql, zum Beispiel, wenn youre xampp verwenden Sie wie diese haben können:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
Lösung funktioniert nur unter Mac OS X
Wenn Sie MySQL mit Homebrew installiert haben, was für mich gearbeitet MySQL wurde die Deinstallation und Installation von MySQL Community Edition über die MySQL-Website ( https://www.mysql.com/ ).
Nach der Installation, einfach wieder in den Befehl gem install mysql2
oder, falls erforderlich, sudo gem install mysql2
, wenn Sie bekommen die Erlaubnis Probleme verweigert.
Ich habe den Edelstein gebaut auf Mac OS X 10.6.6 durch
1) Die Gewährleistung der Entwickler-Tools-Paket installiert
2) Herunterladen das aktuelle MySQL-Paket (5.5.8 in meinem Fall) von Quelle
3) Installieren des Werkzeugs von Cmake cmake.org
4) Nach den Anweisungen in Abschnitt 2.11 der INSTALL-Quelle aus den MySQL-Distribution-Dateien
5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
Der Edelstein erfolgreich gebaut, aber es gibt zwei Fehler in der Dokumentation, dass rdoc und ri beklagen.
Aber jetzt, wenn ich versuche zu verlangen ‚mysql2‘ ich a
LoadError: no such file to load -- mysql2/mysql2
Ich hatte gehofft, die Fehler, die ich bekommen würde, war, dass die libmysqlclient.16.dylib konnte nicht gefunden werden, weil wir, dass die in einem anderen Beitrag gemustert (für install_name_tool suchen).
My $ PATH hat / usr / local / mysql in ihm (das ist, wo meine Quelle und gebaut Dateien gespeichert sind), so dass ich ein wenig ratlos bin. Wenn jemand irgendwelche Gedanken hat, werde ich nach ein paar Stunden Schlaf prüfen.
Wenn noch immer Fehler dann folgen die Schritte mysql2 gem Installation auf Rails 3 auf -
http: // rorguide. blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
, wo die meisten der Benutzer in der Lage waren mysql2 Juwel zu installieren.
Nachdem Sie die mysql-dev Probleme behoben bekommen, können Sie die schlechte mysql2 entfernen müssen installieren. Achten Sie genau auf die Nachrichten nach $ Bundle installieren. Unter Umständen müssen Sie auf
rm -rf vendor/cache/
rm -rf ./Zentest
Dies wird die schlechte mysql2 Installation deaktivieren, so dass ein endgültiger $ installiert Bundle einen guten erstellen können.
Laden Sie die richtige Version von mysqllib.dll herunter und kopieren Sie sie dann in Ruby Bin. Das funktioniert bei mir wirklich.Folgen Sie bitte diesem Link MySQL2-Gem wurde für die falsche MySQL-Client-Bibliothek kompiliert
Got die „Sie haben erste Entwicklungs-Tools installieren.“ Fehler beim Versuch, den mysql2 gem nach der Aktualisierung auf Mac OS X Mountain Lion zu installieren. Scheinbar dieses Upgrade tun, um die Befehlszeilen-Compiler entfernt werden.
Um fix:
- Ich meine sehr alte Version von Xcode deinstalliert (lief das Deinstallationsskript in / Developer / Library). Dann löschte das / Entwickler-Verzeichnis.
- Ging zum App Store heruntergeladen und Xcode.
- Gestartet Xcode und ging in den Einstellungen -.> Downloads, und die Kommandozeilen-Tools installiert
Sie erhalten dieses Problem, weil Sie nicht MySql installieren. Vor mysql2 gem install. Installieren Sie MySQL. Danach mysql2 gem installieren.
Ich wollte nur diese Antwort hinzufügen speziell für Mac .
Mein Server lief völlig in Ordnung, bis ich meine Xcode aktualisiert. Die während meiner Schienen Server startet der Fehler wurde wie folgt dargestellt
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)
Und es gab Vorschlag mysql2 Juwel am Ende der Fehlermeldung zu installieren. Also, wenn ich versuchte, es zu installieren habe ich die Fehler wie oben in dieser Frage erwähnt. Der Fehler, den ich habe ist wie folgt
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
So wie in diesem Beitrag vorgeschlagen, dass ich versuchte, ‚mysql Gebräu zu installieren‘, und dass die MySQL-Version so quitted sagen und so bereits installiert. Aber es war, bevor es warnend sagen
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 versucht, diese sudo xcodebuild -license
und geben Sie ‚zustimmen‘ am Ende. Sie müssen in der Wurzel bis zur Lizenz zustimmen.
Danach habe ich versucht, wieder Bündel zu installieren und dann alles funktioniert gut als normal. [Auch aufgrund dieser Xcode updation hatte ich Probleme mit meinem Turm auch.]
libmysql-ruby
wurde abgeschafft und ersetzt. Neuer Befehl:
sudo apt-get install ruby-mysql libmysqlclient-dev
Es tut uns dies sollte ein Kommentar sein auf Spacemonkey Antwort aber meine nicht genug Ruf, es zu tun.
Ich will hinzufügen, dass wenn Sie mit MariaDB statt mysql auf CentOS 7 Sie nur MariaDB-Shared-Paket installieren müssen, den Fehler zu beheben.
yum install MariaDB-shared -y