mysql2: Mac OSX: Library not loaded: libmysqlclient.18.dylib

Using Mac OSX Lion (with rvm and ruby 1.9.3) I’m getting the following error when doing require 'mysql2' after installing mysql2 gem. Gem install works fine, and I’m specifying path to mysql_config, e.g.:

$ which mysql_config
/usr/local/mysql/bin/mysql_config
$ gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 
Fetching: mysql2-0.3.11.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.11
1 gem installed
Installing ri documentation for mysql2-0.3.11...
Installing RDoc documentation for mysql2-0.3.11...
$ irb
1.9.3p125 :001 > require 'mysql2'
LoadError: dlopen(/Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2.rb:9:in `<top (required)>'
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from (irb):2
    from /Users/matt/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'
1.9.3p125 :002 >

Interestingly, otool shows no path for the libmysqlclient.18.dylib file:

$ otool -L /Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
/Users/matt/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle:
    /Users/matt/.rvm/rubies/ruby-1.9.3-p125/lib/libruby.1.9.1.dylib (compatibility version 1.9.1, current version 1.9.1)
    libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

About this issue

  • Original URL
  • State: closed
  • Created 12 years ago
  • Comments: 15

Most upvoted comments

Just for the records: $ gem pristine mysql2 solves this for me.

Creating symlink to /usr/local/lib instead solved my problem. [OSX El Capitan] sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib