Reputation: 5854
Error:
/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError)
Referenced from: /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
Reason: image not found - /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
In Gemfile: gem 'mysql2'
$ ls -al /usr/local/lib/libmysql*
lrwxr-xr-x 1 askar admin 49 Nov 13 10:48 /usr/local/lib/libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib
lrwxr-xr-x 1 askar admin 42 Nov 13 10:48 /usr/local/lib/libmysqlclient.a -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.a
lrwxr-xr-x 1 askar admin 46 Nov 13 10:48 /usr/local/lib/libmysqlclient.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.dylib
lrwxr-xr-x 1 askar admin 37 Nov 13 10:48 /usr/local/lib/libmysqld.a -> ../Cellar/mysql/5.7.9/lib/libmysqld.a
lrwxr-xr-x 1 askar admin 44 Nov 13 10:48 /usr/local/lib/libmysqlservices.a -> ../Cellar/mysql/5.7.9/lib/libmysqlservices.a
$ ls -al /usr/local/Cellar/mysql/5.7.9/lib/
total 84392
drwxr-xr-x 9 askar admin 306 Nov 12 22:16 .
drwxr-xr-x 14 askar admin 476 Nov 13 10:48 ..
-r--r--r-- 1 askar admin 3780168 Nov 13 10:48 libmysqlclient.20.dylib
-r--r--r-- 1 askar admin 4280752 Nov 12 22:16 libmysqlclient.a
lrwxr-xr-x 1 askar admin 23 Nov 12 22:16 libmysqlclient.dylib -> libmysqlclient.20.dylib
-r--r--r-- 1 askar admin 35126528 Nov 12 22:16 libmysqld.a
-r--r--r-- 1 askar admin 9048 Nov 12 22:16 libmysqlservices.a
drwxr-xr-x 3 askar admin 102 Nov 13 10:48 pkgconfig
drwxr-xr-x 43 askar admin 1462 Nov 12 22:17 plugin
drwxr-xr-x 43 askar admin 1462 Nov 12 22:17 plugin
As you see I'm having libmysqlclient.20.dylib
, it's 20
not 18
, otherwise I'd follow the solution here.
I've recently upgraded to El Capitan but not sure it that's the cause.
UPDATE:
Thanks to @Rashmirathi for the hint to re-install the gem.
Just wanted to note, I needed also to specify in Gemfile as:
gem 'mysql2', '~> 0.3.18'
Otherwise I had error:
Specified 'mysql2' for database adapter, but the gem is not loaded. Add
gem 'mysql2'
to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
But finally I got error:
Mysql2::Error
Your password has expired. To log in you must change it using a client that supports expired passwords.
Which is solved by setting up a password again:
SET PASSWORD=PASSWORD('your_password');
Upvotes: 34
Views: 22729
Reputation:
I was getting the same issue earlier on, I fixed it by reinstalling the gem mysql2
.
Upvotes: 54
Reputation: 9480
For those on OS X El Capitain or more, this fix my problem:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
For more info https://stackoverflow.com/a/32875545/1066915
Upvotes: 23
Reputation: 9600
I'm using Homebrew so I've fixed this problem by clearing up everything step by step:
Comment out the mysql2 gem in in the Rails app Gemfile
"# gem 'mysql2'"
Remove mysql2 gem from bundle
bundle install
Uninstall the mysql2 gem (all versions)
gem uninstall mysql2
Update Homebrew
brew update
Uninstall all versions of mysql
brew uninstall --force mysql
Reinstall mysql
brew install mysql
Uncomment mysql2 gem in Gemfile
gem mysql2
Add mysql2 to bundle
bundle install
This approach might be a bit overkill but feels clean to me.
Upvotes: 4
Reputation: 1883
I had an analogous problem in python: libmysqlclient.20.dylib
instead of 18
on El Capitan. pip install --upgrade mysql
fixed it, but only works in python2.
Upvotes: 5
Reputation: 1217
Just want to chime in here- I just had the same problem with the libmysqlclient.18.dylib 18-20 difference. reinstalling the mysql
gem (a dependency of the activerecord-mysql-adapter
) made the difference. reinstalling mysql2
did nothing.
editing to clarify: my error message traced back to my mysql gem, but i found this thread via searching so i'm including it here:
Please install the mysql adapter: `gem install activerecord-mysql-adapter` (dlopen(/Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle, 9):
Library not loaded: /usr/local/lib/libmysqlclient.18.dylib
Referenced from: /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle
Reason: image not found - /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle) (LoadError)
Upvotes: 1
Reputation: 537
this will solve your problem:
gem pristine mysql2
solution by Cesar Sulbarán
Upvotes: 42