2011-09-20 8 views
6

Estoy usando MAMP2, rvm en OS X Lion y no hay forma de que pueda obtener gema mysql2 para que funcione con mi aplicación Rails.No se puede obtener la gema mysql2 para trabajar con MAMP2 y RVM en la aplicación Lion, Rails3

He seguido esta entrada del blog http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2 y éste http://www.pa-ket.com/blog/show/12-osx-ruby-mysql2-gem-python-mysqldb-using-mamp

Estos fueron los pasos:

$ 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 

Este paso ha fallado:

$ make -j 3 

Después de comentar las pruebas unitarias para 'my_atomic -t.dir 'en /tmp/mysql-5.5.9/CMakeFiles/Makefile2' make -j 3 'fue correcto.

$ 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 

I guess 'Client not known' La advertencia no era nada grave.
Y el paso final:

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 

Y el error que consigo cuando se inicia el servidor rieles:

$ 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 

No puedo establecer esa gema mysql2 y he estado tratando durante semanas. Después de numerosos errores al intentar instalar la gema mysql2, aquí es donde estoy completamente atascado.

Estoy usando RVM y ruby-1.9.2-p290 en OS X Lion con MAMP 2.0.3 y Rails 3.0.7.

Cualquier ayuda es enormemente ¡apreciado!

+1

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

+0

yo sólo repetía todo pasos que incluyen 'make -j 3' en una máquina SnowLeopard y todo funciona sin problemas. Entonces este debe ser un tema de León. – Mirko

+0

Mirko, ¿lo solucionaron? – jBeas

Respuesta

0

Trate de añadir esto a su Gemfile:

gem 'mysql2', < '0.3' 

hice un post acerca de un problema similar hace un tiempo. Puede ver la respuesta aquí:

Cannot run migrations due to MySQL error

+1

Vamos, realmente no crees que no lo haya agregado a mi Gemfile. Intenté todas las gemas 0.2.xx mysql2 ... – Mirko

4

No se debe utilizar para este MAMP.

He leído lo que estás tratando de hacer. Tu problema no es la gema mysql2. Tu problema es tu instalación de mysql.

Sigue este artículo que muestra cómo utilizar homebrew para instalar mysql. Es muy simple y toma entre 10 y 15 minutos, incluido el tiempo de instalación para configurarlo.

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

Nota al margen con el uso de cerveza para instalar MySQL. Después de instalar mysql y tiene éxito, se escupirá una tonelada de información, y necesita mirarlo con cuidado porque hay 1 o 2 líneas entre todos los otros elementos no deseados que son instrucciones, pegar algunas cosas, etc ...

mi configuración:

Actualmente en mi configuración tengo MAMP (para mi directorio/sitios) al hacer cosas simples como sitios de wordpress, etc ... entonces tengo mi homebrew instalación de MySQL para carriles (i finalmente cambiado a sqlite/pg para heroku). Sí, puedo ejecutarlos al mismo tiempo.Tengo esta configuración porque mis proyectos me obligan a saltar entre aplicaciones de rieles, páginas de aterrizaje de html estáticas y algunos proyectos de php más antiguos, y me gusta la separación que tiene 2 instalaciones de mysql.

+0

Gracias por su respuesta. Logré que tanto Leopard como Snow Leopard tuvieran solo el mysql de MAMP, y realmente me gustaría que fuera igual para Lion. Actualmente estoy usando la gema ruby-mysql, pero intentaré degradar MAMP a 1.x cuando tenga algo de tiempo, ya que parece que esas publicaciones de blog funcionarán. Mi último recurso será otra instancia de mysql con homebrew ... – Mirko

+0

Lo haría, miré ese enlace en su publicación y tuvo problemas con esto durante el último mes. ¿Dónde está la diversión en eso? Es hora de escribir un código increíble !! Odio las cosas del administrador del servidor, no mi bolso. Tampoco tengo problemas de rendimiento si te preocupas por eso. Además, después de un tiempo acabo de cambiar a sqlite, no veo ninguna razón para seguir con mysql, especialmente si ya está causando tantos problemas en su sistema. – jBeas

+0

Debo usar mysql en producción, así que no tengo otra opción. ¿Usó sqlite en dev y mysql en producción? ¿Es factible? – Mirko

13

Resolví este problema al desinstalar mysql-connector-c y recompilar la gema mysql2 con los indicadores include y lib del servidor mysql preparado.

$ 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

Funcionó como un encanto para mí –

+0

Funcionó a la perfección. –

+0

Gracias por compartir. No tengo el MySQL instalado utilizando brew pero aún funciona para mí. –

Cuestiones relacionadas