web-dev-qa-db-de.com

Fehler beim Installieren von mysql2: Fehler beim Erstellen der nativen Erweiterung von gem

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?

465
spacemonkey

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
892
spacemonkey

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.

58
Kelsin

Hier ist eine Lösung für die Windows-Benutzer, hoffe, es hilft!

Verwenden von MySQL mit Rails 3 unter Windows

  • 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 ---

34
Francois

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 !!!

20
OfficeYA

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.

15
aruanoc

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

7
João Pereira

Wenn Sie yum verwenden, versuchen Sie:

Sudo yum install mysql-devel
7
Mark Locklear

Wenn Sie immer noch Probleme haben ...

Versuchen Sie die Installation

   Sudo apt-get install Ruby1.9.1-dev
5
capu

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
5
Carlos Pardilla

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;)

4
santo101

Sie müssen einige Abhängigkeiten installieren

Sudo apt-get install libmysql-Ruby libmysqlclient-dev
3
vipin

Unter Debian Stretch war das für mich funktionierende Paket default-libmysqlclient-dev

Sudo apt-get update && apt-get install -y default-libmysqlclient-dev

3
Ali Yazdani

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.

3
arty

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.

2
lofte

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).

2
Nobita

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.

1
the12

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"'
1
Arman Ortega

libmysql-Ruby wurde eingestellt und ersetzt. Neuer Befehl:

 Sudo apt-get install Ruby-mysql libmysqlclient-dev
0
Jerome

Für Benutzer von Windows 7 und 64-Bit-MySQL

Wenn Sie 64-Bit-MySQL verwenden möchten, befolgen Sie die Anweisungen hier (auch hier ).

0
Kitanotori

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.

0
tobinjim

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.

0
Ritesh Kumar

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

0
Bruce

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.

0
mmell

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.]

0
Sony Mathew

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:

  • Ich habe meine sehr alte Version von Xcode deinstalliert (habe das Deinstallationsskript in/Developer/Library ausgeführt). Dann löschte das/Developer-Verzeichnis.
  • Ging zum AppStore und lud Xcode herunter.
  • Starte Xcode und gehe in die Einstellungen -> Downloads und installiere die Kommandozeilen-Tools.
0
Sunil D.

Sie bekommen dieses Problem, weil Sie MySql nicht installiert haben. Vor der Installation von mysql2 gem. Installieren Sie MySQL. Danach wird mysql2 gem installiert.

0
Amrit Dhungana

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

0
Allen