2013-05-20 19 views
13

Ho provato diverse idee ... nessuno di loro ha lavorato ... Sto solo cercando di installare mysql2 come un gioiello. Il mio mysql funziona, ma ogni volta che il mio sistema dice che mysql.h manca ... Qualcuno ha un'idea? E 'molto frustrante ora ...mysql.h manca .... (Ruby on Rails, OSX)

sto usando OSX 10.8.3, ruby ​​1.9.3, 3.2.13 rotaie e home-brew.

gem install mysql2 -v '0.3.11' 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

     /Users/gadreel/.rvm/rubies/ruby-1.9.3-p429/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for mysql.h... no 
checking for mysql/mysql.h... no 
----- 
mysql.h is missing. please check your installation of mysql and try again. 
----- 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-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=/Users/gadreel/.rvm/rubies/ruby-1.9.3-p429/bin/ruby 
    --with-mysql-config 
    --without-mysql-config 

    file `which mysql` 
    /usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64 
+0

sembra mysql2 richiede mysql –

risposta

3

Utilizzando un gestore di pacchetti come Homebrew o MacPorts lo rende abbastanza facile, per risolvere questo problema. La distribuzione binaria di MySQL direttamente da Oracle e quella in bundle con OS X e non ha gli header di sviluppo, di cui mysql.h è uno di loro.

Homebrew avrebbero risolto il problema in questo modo:

brew install mysql 

MacPorts è molto simile:

sudo port install mysql 

Entrambi questi installare le librerie, un client a riga di comando e le intestazioni di sviluppo associati per le librerie. Abilitare il server è facoltativo.

In alternativa, è possibile ottenere la fonte direct from Apple e installarlo qualunque modo si vede in forma.

Generalmente Homebrew è il modo migliore per andare.

+0

ho fatto questo, ma non ha funzionato . Ho reinstallato la porta e poi mysql5. Ora ho questo errore: Users/gadreel/.rvm/gems/ruby-1.9.3-p429/gems/mysql2-0.3.11/lib/mysql2/client.rb: 44: in 'connect ': Can not connect al server MySQL locale attraverso presa '/var/run/mysqld/mysqld.sock' (2) (Mysql2 :: Errore) – gadreel

+0

funziona ora, grazie! :-) L'ultimo errore è stato facile da risolvere. – gadreel

+0

'sudo port install mysql' non funziona. Il comando più vicino è, per installare l'ultima versione di 'mysql' è:' sudo port install mysql55'; tuttavia, questo non crea 'mysql.h'. Anche la porta 'mysql55-server' non la include. Quale 'porto' sarebbe? – Alex

0

L'installazione di una gemma richiede talvolta la compilazione dell'origine. In questo caso, la gemma MySQL deve creare l'interfaccia ruby ​​compilando il codice C - è molto probabile che sia necessario installare i file di sviluppo MySQL.

(perso il riferimento OSX precedente)

+0

La domanda prevede espressamente OS X. – tadman

46

Quello che ha funzionato per me in Mountain Lion Rails installazione è (utilizzando Homebrew e RVM) è stata la modifica /usr/local/Cellar/mysql/5.XX.XX/bin/mysql_config e la rimozione di -Wno-null-conversion -Wno-unused-private-field da cxflags e cxflags opzioni nel modo seguente :

Prima:

cflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! 
cxxflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! 

Dopo:

cflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! 
cxxflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! 

Dopo che gem install mysql2 proceduto senza hickups

Nota: questo è probabilmente dovuto ad un cambiamento introdotto per mysql_config dopo 5.6.10: http://bugs.mysql.com/bug.php?id=69645

+1

Questo ha funzionato per me - non ho idea del perché comunque. –

+0

Funziona anche per me, sembra un problema abbastanza recente, ho appena reinstallato il mio computer. – sebastiangeiger

+0

Aveva lo stesso problema e questo lo ha risolto. – adammokan