mysql ruby macos homebrew mysql2

La gema mysql2 no se compila con MySQL 5.6.12 en OS X con Homebrew



ruby macos (5)

Actualicé todos los paquetes que instalé con Homebrew. MySQL se actualizó a 5.6.12 (de 5.5.27 más o menos):

$ mysql --version mysql Ver 14.14 Distrib 5.6.12, for osx10.8 (x86_64) using EditLine wrapper

y ahora la gema mysql2 ya no se compila:

$ gem install mysql2 Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /Users/pupeno/.rvm/rubies/ruby-1.9.3-p429-perf/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/pupeno/.rvm/rubies/ruby-1.9.3-p429-perf/bin/ruby --with-mysql-config --without-mysql-config

El archivo mysql.h está presente en /usr/local/Cellar/mysql/5.6.12/include/mysql.h . ¿Alguna idea de qué está pasando?

El archivo mysql.h no aparece en /usr/local porque el enlace simbólico parece ir más profundo de lo que debería:

$ ls -la /usr/local/include/mysql lrwxr-xr-x 1 pupeno admin 36 21 Jun 15:18 /usr/local/include/mysql@ -> ../Cellar/mysql/5.6.12/include/mysql

en lugar de

/usr/local/Cellar/mysql/5.6.12/include

Dicho esto, arreglé manualmente el enlace simbólico y la compilación falló. Así que estoy atascado.


Esto también pareció funcionar para mí. Obliga a la gema a compilar contra 5.6.10.

bundle config build.mysql2 --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config

Respuesta relacionada: https://.com/a/9360181


La respuesta principal aquí es obsoleta ... los cerveceros han arreglado mysql:

brew update brew upgrade mysql gem install mysql2

Esto actualizará mysql a 5.6.13, que parece funcionar bien con la gema mysql2 en OSX.



Tuve el mismo problema, me las arreglé para solucionarlo. Hice muchas cosas, y no sé con certeza qué fue, pero parece que ir a MySQL 5.6.10 ha funcionado.

Desinstalar MySQL 5.6.12:

brew unlink mysql brew uninstall mysql

Ir al directorio de homebrew:

cd /usr/local

Vaya a la versión 5.6.10 (puede encontrar una lista de versiones ejecutando brew versions mysql :

git checkout 48f7e86 Library/Formula/mysql.rb

Luego instale mysql de nuevo:

brew install mysql

Y ahora gem install mysql2 funciona para mí.

También instalé mysql desde la fuente ( brew install mysql --build-from-source ), pero eso no lo resolvió, pero podría ser parte de la solución.


sólo ;)

gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config