I updated all the packages I installed with Homebrew. MySQL got upgraded to 5.6.12 (from 5.5.27 or so):
$ mysql --version
mysql Ver 14.14 Distrib 5.6.12, for osx10.8 (x86_64) using EditLine wrapper
and now the mysql2 gem doesn't compile anymore:
$ 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
The file mysql.h
is present in /usr/local/Cellar/mysql/5.6.12/include/mysql.h
. Any ideas what's going on?
The file mysql.h
doesn't appear in /usr/local
because the symlink seems to go deeper than it should:
$ 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
instead of
/usr/local/Cellar/mysql/5.6.12/include
Having said that, I manually fixed the symlink and the compilation still failed. So I'm stuck.
I had the same problem, I managed to fix it. I did a lot of things, and I don't know for sure what it was, but going to MySQL 5.6.10 seems to have worked.
Uninstall MySQL 5.6.12:
brew unlink mysql brew uninstall mysql
Go to the homebrew directory:
cd /usr/local
Go to version 5.6.10 (you can find a list of versions by running brew versions mysql
:
git checkout 48f7e86 Library/Formula/mysql.rb
Then install mysql again:
brew install mysql
And now gem install mysql2
works for me.
I've also installed mysql from source (brew install mysql --build-from-source
), but that didn't solve it, but might be part of the solution.
just ;)
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config
This also seemed to work for me. It forces the gem to compile against 5.6.10.
bundle config build.mysql2 --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config
Related answer: https://stackoverflow.com/a/9360181
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With