Muhammad Ateeq Azam
Muhammad Ateeq Azam

Reputation: 1029

Fail to install MySQL2 gem on Mac

I'm trying to install mysql2 gem for rails applications but it gives me following error while running sudo gem install mysql2

ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2
/Users/ateeq/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20161103-83594-10ft58j.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for rb_big_cmp()... yes
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
-----
-----
Setting libpath to /usr/local/Cellar/mysql/5.7.16/lib
-----
creating Makefile

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/mkmf.log

current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
compiling statement.c
linking shared-object mysql2/mysql2.bundle
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5 for inspection.
Results logged to /Users/ateeq/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/gem_make.out

I installed rails via brew & rbenv. Versions are mentioned below:

Ruby Version: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

Rails Version: Rails 4.2.6

MySql Version: mysql-5.7.16

Upvotes: 1

Views: 2096

Answers (2)

Muhammad Ateeq Azam
Muhammad Ateeq Azam

Reputation: 1029

Here is my solution for above error:

I just uninstalled mysql by running brew remove mysql and then run following command to install mysql2 gem sudo gem install mysql2. It worked for me. After this, I reinstalled mysql by running brew install mysql.

P.s. I don't know about this behaviour. If anyone can explain, it'd be great.

Upvotes: 1

MarsAtomic
MarsAtomic

Reputation: 10696

Pull up an instance of Terminal and run:

brew doctor

It's likely that one or more dependencies for building the mysql gem are out of date.

You'll have to run:

brew update

You probably also upgraded to the Sierra release of OS X recently. Make sure your XCode command line tools is up to date. Run:

xcode-select --install

Make sure you accept the license for the new version of XCode by running:

sudo xcodebuild -license

Upvotes: 5

Related Questions