Domanda

Sto avendo alcuni problemi quando si tenta di installare gioiello mysql2 per Rails. Quando provo ad installarlo eseguendo bundle install o gem install mysql2 mi dà il seguente errore:

  

Errore durante l'installazione mysql2: ERRORE:. Riusciti a costruire gioiello estensione nativa

Come posso risolvere questo problema e installare correttamente mysql2?

È stato utile?

Soluzione

Su Ubuntu / Debian e altre distribuzioni che utilizzano attitudinale:

sudo apt-get install libmysql-ruby libmysqlclient-dev

Il pacchetto libmysql-ruby è stata gradualmente eliminata e sostituita da ruby-mysql. Questo è dove ho trovato la soluzione.

Se il comando di cui sopra non funziona perché libmysql-ruby non può essere trovato, il seguente dovrebbe essere sufficiente:

sudo apt-get install libmysqlclient-dev

Su Red Hat / CentOS e altre distribuzioni che utilizzano yum:

sudo yum install mysql-devel

In Mac OS X con Homebrew :

brew install mysql

Altri suggerimenti

Sono su un Mac e l'uso homebrew installare programmi open source. Ho dovuto installare gli strumenti Mac Dev per installare homebrew, ma dopo che si trattava di un semplice:

brew install mysql

per installare MySQL. Non ho avuto un problema mysql gioiello da allora.

ecco una soluzione per gli utenti di Windows , la speranza che aiuta!

Uso MySQL con Rails 3 su Windows

  • Installa railsinstaller -> www.railsinstaller.org (ho installato in C: \ Rails)

  • Installa MySQL (io ho usato MySQL 5.5) -> dev.mysql.com/downloads/installer /

  

--- per l'installazione mySQL ---   
Se non dispone già di questi due file installato potrebbe essere necessario loro per ottenere il vostro MySQL andare
  vcredist_x86.exe -> http://www.microsoft.com/download/ it / Details.aspx? id = 5555   dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/ it / Details.aspx? id = 17718   
  installazione di default Usa   Developer macchina

     

-MySQL Server Config -
  porto: 3306
  Nome del servizio: MySQL55
  mysql passaggio root: root (è possibile modificare in seguito)
  (Username: root)
   -MySQL Server Config -

     

--- per l'installazione mySQL ---

  

--- Installare il mysql2 Gem ---
  Importante: Fare questo con Git Bash riga di comando (questo è stato installato con railsinstaller) -> start / Git Bash
   gem install mysql2 - '--with-mysql-lib = "C: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-includono = "c: \ Program Files \ MySQL \ MySQL Server 5.5 \ include " '   
  Ora la gemma dovrebbe avere installato correttamente   
  Infine copiare il file libmysql.dll da
  C: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib
  a
  C: \ Rails \ Ruby1.9.2 \ bin
   --- Installare il mysql2 Gem ---


Ora sarà in grado di utilizzare la vostra applicazione Rails con MySQL, se non siete sicuri di come creare un'applicazione Rails 3 con MySQL continua a leggere ...


--- ottenere un Rails 3 app andando con MySQL ---
Aprire il prompt dei comandi (non Git Bash) -> start / cmd
Passare alla cartella (c: \ Siti)
Creare nuove rotaie app

rails new world

Eliminare il file C: \ Siti \ mondo \ public \ index.html
Modificare il file C: \ Siti \ mondo \ config \ routes.rb
aggiungere questa riga -> root: a => 'città # index'

Apri prompt dei comandi (generare viste e controller)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer


Modificare il file C: \ Siti \ mondo \ app \ modelli \ city.rb a guardare come questo

class City < ActiveRecord::Base
 set_table_name "city"
end

Modificare il file C: \ Siti \ mondo \ config \ database.yml a guardare come questo

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

aggiungi al Gemfile

gem 'mysql2'

Apri Prompt dei comandi di Windows cmd non Git Bash (eseguire l'app!)
Passare alla cartella app (c: \ Siti \ mondo)

rails s

Aprire il browser qui -> http: // localhost: 3000

--- ottenere un Rails 3 app andando con MySQL ---

Ho diversi computer, 32 e 64 bit del processore, che corrono su Ubuntu Linux, Maverick (10.10) di rilascio.

Ho avuto lo stesso problema, e per me, la sudo apt-get install libmysql-ruby libmysqlclient-dev ha fatto il lavoro !!!

Un altro modo per MacOS utenti

Se è stato utilizzato "birra" per installare mysql:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

x.x.x = versione del gioiello mysql2 si desidera installare
y.y.y = la versione di MySQL è stato installato ls /usr/local/Cellar/mysql a trovarlo.

Hai provato a usare

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

per specificare la posizione di TheBase directory così come il percorso per le librerie di MySQL che sono necessarie per completare l'installazione gemma?

Fonti: MySQL gem install ERRORE: impossibile costruire gioiello nativo estensione MySQL Forum :: :: Rubino Help needed con l'installazione di MySQL vincolante per Ruby

Se si utilizza yum provare:

sudo yum install mysql-devel

Questo risolto il mio problema una volta 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

Se si verificano ancora problemi ....

Provare ad installare

   sudo apt-get install ruby1.9.1-dev

Ho avuto questo problema su Windows 7. Questo è apparentemente un problema di incompatibilità e la soluzione è la seguente:

Scarica il file libmySQL.dll da un programma di installazione InstantRails più vecchio. E 'disponibile dal InstantRails GitHub repo .

Avanti, copiare il file nella cartella di Ruby / bin.

Ora, si è pronti per partire;)

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

ho ottenuto questo errore troppo. Risolto con l'installazione di pacchetti di sviluppo. Sto usando arco ed è stato:

sudo pacman -S base-devel

che ha installato:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

ma credo che sia effettivamente necessario marca e gcc. Uscita di errore detto (sulla mia macchina, tra l'altro):

"È necessario installare gli strumenti di sviluppo per primo."

Quindi, è stata una decisione ovvia e mi ha aiutato.

È necessario installare alcune dipendenze

sudo apt-get install libmysql-ruby libmysqlclient-dev

Su Debian Stretch il pacchetto che ha funzionato per me è stato default-libmysqlclient-dev

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

Sono stato in esecuzione in questo errore sul mio Mac e ho scoperto che avevo bisogno di aggiornare da mysql a 32 bit a 64 bit mysql per ottenere questo errore di andare via. Stavo correndo OSX 10.6 su un processore Intel MacBook Pro con rubino 1.9.2 e rails3.0.0

Ho anche bisogno di installare Xcode al fine di ottenere utility Unix come "fare" che sono necessari per compilare la gemma.

Una volta che questo è stato fatto sono stato in grado di eseguire gem install mysql e gem install mysql2 senza errori.

Nel mio caso questo ha aiutato:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

Quindi:

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

Risultato:

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

Vedi questo post (ATTENZIONE: la lingua giapponese all'interno).

Per gli utenti di Windows: È impostare la lib e comprendono percorso del mysql, per esempio, se state usando XAMPP è possibile avere in questo modo:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

La soluzione funziona solo su Mac OS X

Se avete installato MySQL con homebrew, che cosa ha funzionato per me è stato Disinstallo MySQL, e l'installazione di MySQL Community Edition tramite il sito web di MySQL ( https://www.mysql.com/ ).

Dopo aver installato, appena ri-immettere il comando per gem install mysql2 o, se necessario, sudo gem install mysql2, se hai trovato permesso negato problemi.

Ho avuto la gemma costruita su Mac OS X 10.6.6 per 1) Garantire il pacchetto Strumenti per sviluppatori è installato 2) Scaricando il pacchetto MySQL corrente (5.5.8 nel mio caso) da sorgenti 3) Installazione dello strumento di cmake da cmake.org 4) In seguito le istruzioni nella sezione 2.11 di INSTALL-SOURCE dai file di distribuzione mysql 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include La gemma costruito con successo, ma ci sono due errori nella documentazione rdoc e Ri lamentarsi. Ma ora quando provo a richiedere 'mysql2' ho un

LoadError: no such file to load -- mysql2/mysql2

Speravo l'errore vorrei ottenere è che il libmysqlclient.16.dylib non è stato trovato perché abbiamo capito che in un altro post (ricerca di install_name_tool).

Il mio $ PATH ha / usr / local / mysql in esso (quella in cui si trovano la mia fonte e file incorporati), quindi sono un po 'perplesso. Se qualcuno ha qualche pensiero, vado a controllare di nuovo dopo poche ore di sonno.

Se ancora ottenere l'errore quindi seguire i passi di installazione mysql2 gemma on Rails 3 su -

http: // rorguide. blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

dove la maggior parte degli utenti sono stati in grado di installare mysql2 gemma.

Dopo aver ottenuto i problemi mysql-dev corretti, potrebbe essere necessario rimuovere installare il cattivo mysql2. Guardate attentamente i messaggi dopo $ bundle install. Potrebbe essere necessario

rm -rf vendor/cache/
rm -rf ./Zentest

Questo cancellerà l'installazione mysql2 male in modo che un $ finale bundle install in grado di creare un buon compromesso.

scaricare la versione giusta di mysqllib.dll poi copiarlo rubino bin funziona davvero per me. Segui questo link plases mysql2 gioiello compilato per mysql sbagliato libreria client

Got il "È necessario installare gli strumenti di sviluppo per primo." di errore quando si tenta di installare la gemma mysql2 dopo l'aggiornamento a Mac OS X Mountain Lion . A quanto pare questa operazione di aggiornamento rimuove i compilatori della riga di comando.

Per risolvere:

  • Ho disinstallato la mia vecchia versione di Xcode (correva lo script di disinstallazione in / Developer / Library). Poi cancellato la directory / Developer.
  • Siamo andati in AppStore e scaricato Xcode.
  • Lanciato Xcode e andò in Preferenze -.> Download, e installato gli strumenti della riga di comando

Si stanno ottenendo questo problema perché non avete installare MySQL. Prima di installare gemma mysql2. Installare MySQL. Dopo di che mysql2 gioiello verrà installato.

Volevo solo aggiungere questa risposta appositamente per Utenti Mac .

Il mio server era in esecuzione perfettamente bene fino a quando ho aggiornato il mio Xcode. La durante l'avvio il mio server rotaie l'errore è stato mostrato come questo

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)

E c'era il suggerimento di installare mysql2 gioiello alla fine del messaggio di errore. Così, quando ho provato l'installazione ho ottenuto l'errore come sopra menzionato in questa domanda. L'errore ho ottenuto è la seguente

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

Quindi, come suggerito in questo post ho provato 'brew installare mysql' e che lasciò dicendo che la versione mysql così e così già installato. Ma c'era di avvertimento prima di dire

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

Poi ho provato questo sudo xcodebuild -license e il tipo di 'accordo' alla fine. Devi essere root per accettare la licenza.

Dopo questo, ho di nuovo provato bundle install e quindi tutto funziona bene come normale. [Anche a causa di questo Xcode updation, ho avuto un problema con la mia torre anche.]

libmysql-ruby è stata gradualmente eliminata e sostituita. Nuovo comando:

 sudo apt-get install ruby-mysql libmysqlclient-dev

Per coloro che utilizzano Windows 7 e 64-bit MySQL

Se si desidera utilizzare a 64-bit di MySQL, è necessario seguire le istruzioni qui (anche qui ).

Ci scusiamo per questo dovrebbe essere un commento sulla di Spacemonkey risposta ma i miei non hanno abbastanza reputazione per farlo.

Voglio aggiungere che se si sta utilizzando mariadb invece di MySQL su CentOS 7 è sufficiente installare il pacchetto MariaDB-condivisa per correggere l'errore.

yum install MariaDB-shared -y
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top