2011-03-23 9 views
21

Tengo un problema al instalar la gema mysql2.Instalación de la gema mysql2 para Ruby on Rails con Mac OSX 10.6

Esto viene a colación cuando lo haga gem install mysql2:

Marks-MacBook-Pro:~ Mark$ gem install mysql2 
Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
ERROR: Failed to build gem native extension. 

/Users/useruser/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lmygcc... no 
checking for mysql_query() in -lmysqlclient... no 
*** 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 
    --without-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/useruser/.rvm/rubies/ruby-1.9.2-p136/bin/ruby 
    --with-mysql-config 
    --without-mysql-config 
    --with-mysql-dir 
    --without-mysql-dir 
    --with-mysql-include 
    --without-mysql-include=${mysql-dir}/include 
    --with-mysql-lib 
    --without-mysql-lib=${mysql-dir}/lib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-mlib 
    --without-mlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-zlib 
    --without-zlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-socketlib 
    --without-socketlib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-nsllib 
    --without-nsllib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 
    --with-mygcclib 
    --without-mygcclib 
    --with-mysqlclientlib 
    --without-mysqlclientlib 


Gem files will remain installed in /Users/useruser/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6 for inspection. 
Results logged to /Users/useruser/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/ext/mysql2/gem_make.out 

También cuando utilizo rails server no sabe cómo proseguir:

Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile. 

Respuesta

48

Parece que no puede encontrar la biblioteca de MySQL. ¿Has instalado MySQL?
Intenta instalarlo a través de homebrew:

brew install mysql 

o instalarlo a través de MacPorts o Fink o lo que usted prefiera y vuelva a intentarlo con:

gem install mysql2 
+0

¡Gracias! Esto funcionó! Ahora cuando comienzo el servidor de rieles y hago clic en "Acerca del entorno de su aplicación ..." Esto aparece: Mysql2 :: Error No se puede conectar al servidor MySQL local a través del socket '/tmp/mysql.sock' (2) Rails .root:/Users/useruser/example ¿Sabes lo que eso significa? – Maze

+0

¿ha configurado el servidor mysql para ejecutar? "mysql.server start" hará el trabajo, y no se olvide de configurar el acceso para el usuario raíz. – ALoR

+0

Esto viene:. ¡ERROR! El administrador de pid-archivo se cierra sin actualizar el archivo. – Maze

1

Vas a tener que especificar algunas variables de entorno adicionales para instalar esta joya en la arquitectura de 64 bits para Mac OSX 10.6:

env ARCHFLAGS="-arch x86_64" gem install mysql2 

Si utiliza RVM puede agregar esto como su opción por defecto en el archivo ~/.rvmrc:

rvm_archflags="-arch x86_64" 
+0

no funcionó :(Tal vez estoy haciendo mal, ¿puedes explicar un poco más en detalle cómo hacerlo por favor? – Maze

+0

sacaste el mismo error o un error diferente? Si usted tiene su mysql instalado en otro lugar que no sea el predeterminado también podría necesitar especificar otros indicadores como --with-opt-dir también. –

+0

Recibo el mismo error. Dice: Los archivos de gemas permanecerán instalados en/Users/useruser /. rvm/gems/ruby-1.9.2-p136/gems/mysql-2.8.1 para la inspección. ¿Tal vez eso pueda ayudar? y sí, estoy usando rvm – Maze

1

que tenía el mismo problema y los errores tratando de instalar exacta mysql2. Pensé que mi instalación mamp de MySQL funcionaría bien y pasé unas horas jugando con las rutas para que funcione, sin éxito.

Finalmente encontramos esta publicación de ALoR e instalé una nueva versión a través de homebrew; sin embargo, ¡asegúrese de seguir TODAS las instrucciones de homebrew! Me perdí unos pasos y perdido otra hora rastrear a ese problema - aquí están las instrucciones: https://stackoverflow.com/a/11061487/1241271

Después de MySQL se ha instalado correctamente, me encontré: sudo gem install mysql2 y funcionó como un encanto.

Espero que esto ayude a alguien a perder varias horas porque olvidó leer los documentos (error nuevo).

20

Este comando trabajó para mí:

gem install mysql2 -- --srcdir=/usr/local/mysql/include 
+1

Esta funciona si has usado los binarios suministrados desde el sitio web mysql para instalarlo en tu Mac – gmaliar

+0

gracias, como dijo Guy anteriormente, esto funciona si usaste el sitio web de mysql para instalar – Brenden

+0

Esto funcionó para mí también ... pero no he usado el sitio web de mysql para instalarlo. – Siddharth

14

No necesito MySQL en Mac OS X, porque tengo instalado MySQL en la caja de vagabundo. Por lo tanto, acabo de instalar mysql-connector-c.

brew install mysql-connector-c 
gem install mysql2 
4

A continuación trabajó para mí

brew install mysql 
brew install mysql-connector-c 
gem install mysql2 
2

Si utilizó homebrew para instalar MySQL, brew install mysql, esto funcionó para mí:

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

xxx = versión de la gema mysql2 desea instalar
yyy = la versión de mysql que ha instalado ls /usr/local/Cellar/mysql para encontrarlo.

para obtener la versión de MySQL

brew info mysql                                                  
mysql: stable 5.7.19 (bottled) 
       ... 
/usr/local/Cellar/mysql/5.7.19 (322 files, 233MB) * 

       ... 

entonces si desea instalar con el paquete:

bundle config build.mysql --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config 
+0

¡Te amo! 'salva mi vida: D –

7

siguiente comando me funcionó con éxito.

x.x.x = versión de mysql2 que desea instalar.

gem install mysql2 -v 'x.x.x' -- --srcdir=/usr/local/mysql/include 
+0

Gracias, funcionó para mí después de instalar MariaDB 10.2 (vía brew) en macOS 10.12.5, Ruby 2.3.4, Rails 5.0.3 – smile2day

Cuestiones relacionadas