Обновление El Capitan: библиотека не загружена: / usr/local/lib / libmysqlclient.18.dylib нужна
ошибка:
/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
В 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
Как видите, у меня libmysqlclient.20.dylib
, это 20
не 18
, иначе я бы следовал решению здесь.
Я недавно обновился до El Capitan, но не уверен, что это причина.
обновление:
спасибо @Rashmirathi за подсказку, чтобы переустановить драгоценный камень.
просто хотел отметить, мне нужно было также указать в Gemfile как:
gem 'mysql2', '~> 0.3.18'
в противном случае у меня была ошибка:
указано "mysql2" для адаптера базы данных, но драгоценный камень не загружен. Добавить
gem 'mysql2'
в ваш Gemfile (и убедитесь, что его версия является минимальной, требуемой ActiveRecord).
но наконец, я получил ошибку:
Mysql2::Ошибка
Срок действия пароля истек. Для входа в систему необходимо изменить его с помощью клиента, поддерживающего просроченные пароли.
который решается путем настройки пароля снова:
SET PASSWORD=PASSWORD('your_password');
6 ответов
для тех, кто на OS X El Capitain или более, это исправить мою проблему:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
дополнительная информация https://stackoverflow.com/a/32875545/1066915
у меня была аналогичная проблема в Python: libmysqlclient.20.dylib
вместо 18
на Эль-Капитан. pip install --upgrade mysql
исправлено, но работает только в python2.
Я использую Homebrew, поэтому я исправил эту проблему, очистив все шаг за шагом:
-
прокомментируйте драгоценный камень mysql2 в приложении Rails Gemfile
"# gem 'mysql2'"
-
удалить mysql2 gem из пакета
bundle install
-
удалите драгоценный камень mysql2 (все версии)
gem удалить mysql2
-
обновление Доморощенный
brew update
-
удалить все версии mysql
brew uninstall --force mysql
-
переустановить mysql
brew установить mysql
-
раскомментировать mysql2 gem в Gemfile
gem mysql2
-
добавить mysql2 в комплект
bundle install
этот подход может быть немного перебор, но я чувствую себя чистым.
просто хочу перезвонить здесь - у меня была такая же проблема с libmysqlclient.18.dylib нужна 18-20 разница. переустановка mysql
gem (зависимость от activerecord-mysql-adapter
) сделал разницу. повторная mysql2
ничего не делал.
редактирование для уточнения: мое сообщение об ошибке прослеживается до моего MySQL gem, но я нашел этот поток через поиск, поэтому я включаю его здесь:
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)