2011-09-20 10 views
6

Sto usando MAMP2, rvm su OS X Lion e non c'è modo per far funzionare mysql2 gem con la mia app Rails.Non riesco a far funzionare mysql2 gem con MAMP2 e RVM su Lion, Rails3

Ho seguito questo post del blog http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2 e questo http://www.pa-ket.com/blog/show/12-osx-ruby-mysql2-gem-python-mysqldb-using-mamp

Questi sono stati i passaggi:

$ cd /tmp 
$ mv /Users/yourname/Desktop/mysql-5.5.9.tar.gz . 
$ tar xf mysql-5.5.9.tar.gz 
$ cd mysql-5.5.9 
$ brew install cmake 
$ cmake . -DMYSQL_UNIX_ADDR=/Applications/MAMP/tmp/mysql/mysql.sock -DCMAKE_INSTALL_PREFIX=/Applications/MAMP/Library 

Questo passaggio non riuscito:

$ make -j 3 

Dopo aver commentato unit test per 'my_atomic -t.dir 'in /tmp/mysql-5.5.9/CMakeFiles/Makefile2' make -j 3 'è andato bene.

$ cp libmysql/*.dylib /Applications/MAMP/Library/lib/ 
$ mkdir -p /Applications/MAMP/Library/include/mysql 
$ cp include/* /Applications/MAMP/Library/include/mysql 
$ env ARCHFLAGS="-arch x86_64" gem install mysql2 -v 0.2.11 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config 
Building native extensions. This could take a while... 
Successfully installed mysql2-0.2.11 
1 gem installed 
Installing ri documentation for mysql2-0.2.11... 
Enclosing class/module 'mMysql2' for class Client not known 
Installing RDoc documentation for mysql2-0.2.11... 
Enclosing class/module 'mMysql2' for class Client not known 

Immagino che l'avviso "Cliente non noto" non è stato di importanza critica.
E il passo finale:

install_name_tool -change /tmp/mysql-5.5.9/libmysql/libmysqlclient.16.dylib /Applications/MAMP/Library/lib/libmysqlclient.16.dylib ~/.rvm/gems/[email protected]/gems/mysql2-0.2.11/ext/mysql2/mysql2.bundle 

E l'errore che ottengo quando si avvia server di rotaie:

$ rails server 
=> Booting WEBrick 
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[FATAL] failed to allocate memory 

non riesco proprio a impostare quella gemma mysql2 e ho cercato per settimane. Dopo numerosi errori nel tentativo di installare mysql2 gem, questo è il punto in cui sono completamente bloccato.

Sto utilizzando RVM e ruby-1.9.2-p290 su OS X Lion con MAMP 2.0.3 e Rails 3.0.7.

Qualsiasi aiuto è notevolmente apprezzato!

+1

errore simile: http://stackoverflow.com/questions/7056157/mac-osx-lion-and-ruby-fatal-failed-to-allocate-memory – Mirko

+0

ho appena ripetuto tutto passaggi che includono 'make -j 3' su una macchina SnowLeopard e tutto funziona senza problemi. Quindi questo deve essere un problema Lion. – Mirko

+0

Mirko, hai capito? – jBeas

risposta

0

Prova ad aggiungere questo alla tua Gemfile:

gem 'mysql2', < '0.3' 

ho fatto un post su un problema simile un po 'indietro. È possibile visualizzare la risposta qui:

Cannot run migrations due to MySQL error

+1

Dai, non pensi davvero che non l'ho aggiunto al mio Gemfile. Ho provato tutte le gemme mysql2 0.2.xx ... – Mirko

4

Si consiglia di non utilizzare MAMP per questo.

Ho letto quello che stai cercando di fare. Il tuo problema non è la gemma mysql2. Il tuo problema è la tua installazione di mysql.

Seguire questo articolo che mostra l'uso di homebrew per installare mysql. È molto semplice e richiede circa 10-15 minuti incluso il tempo di installazione per installarlo.

http://blog.theablefew.com/very-simple-homebrew-mysql-and-rails

Nota a margine con l'utilizzo di birra da installare mysql. Dopo aver installato mysql, avrà successo a sputare un sacco di informazioni, e dovrai guardarlo attentamente perché ci sono 1-2 righe tra tutte le altre cose che sono istruzioni, incollare alcune cose, ecc ...

mio Setup:

Attualmente in mia messa a punto ho MAMP (per la mia directory/siti) quando facendo cose semplici come siti WordPress, ecc ... Poi ho il mio homebrew installazione di MySQL per rotaie (alla fine sono passato a sqlite/pg per heroku). Sì, posso eseguirli contemporaneamente.Ho questa configurazione perché i miei progetti mi richiedono di saltare tra app per rails, landing page html statiche e alcuni progetti php precedenti, e mi piace che la separazione abbia 2 installazioni mysql.

+0

Grazie per la risposta. Sono riuscito sia su Leopard che Snow Leopard ad avere solo mysql di MAMP, e mi piacerebbe davvero che fosse lo stesso per Lion. Attualmente sto usando gemma ruby-mysql, ma cercherò di eseguire il downgrade di MAMP a 1.x quando avrò un po 'di tempo, come sembra da quei post del blog che funzioneranno. La mia ultima risorsa sarà un'altra istanza mysql con homebrew ... – Mirko

+0

Vorrei, ho visto quel link nel tuo post e hai avuto problemi con questo per il mese scorso. Dov'è il divertimento in questo? È ora di scrivere un codice fantastico !! Odio le cose dell'amministratore del server, non la mia borsa. Inoltre non ho alcun problema di prestazioni se ti preoccupi di questo. Inoltre, dopo un po 'sono passato a SQLite, non vedo alcun motivo per rimanere con mysql, specialmente se sta già causando così tanti problemi al tuo sistema. – jBeas

+0

Devo usare mysql in produzione, quindi non ho scelta. Hai usato sqlite in dev e mysql in produzione? È fattibile? – Mirko

13

Ho risolto questo problema disinstallando mysql-connector-c e ricompilando mysql2 gem con include e lib flag dal server mysql creato.

$ brew uninstall mysql-connector-c 
$ gem uninstall mysql2 
$ gem install mysql2 -- --with-mysql-include=/usr/local/Cellar/mysql/5.5.19/include --with-mysql-lib=/usr/local/Cellar/mysql/5.5.19/lib 

http://abisso.org/2012/03/failed-to-allocate-memory/

+0

Ha funzionato come un fascino per me –

+0

ha funzionato perfettamente. –

+0

Grazie per aver condiviso. Non ho installato MySQL usando brew ma funziona ancora per me. –

Problemi correlati