Подтвердить что ты не робот

Обновление 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 not 18, иначе я бы выполнил решение здесь.

Недавно я обновился до El Capitan, но не уверен, что причина.

UPDATE:

Благодаря @Rashmirathi за подсказку переустановить драгоценный камень.

Просто хочу отметить, мне также нужно указать в Gemfile:

gem 'mysql2', '~> 0.3.18'

В противном случае у меня была ошибка:

Указанный "mysql2" для адаптера базы данных, но драгоценный камень не загружен. Добавьте gem 'mysql2' в свой Gemfile (и убедитесь, что его версия минимальна для ActiveRecord).

Но, наконец, я получил ошибку:

mysql2:: Ошибка
    Ваш пароль истек. Чтобы войти в систему, вы должны изменить ее с помощью клиента, который поддерживает истекшие пароли.

Эта проблема решается путем настройки пароля еще раз:

SET PASSWORD=PASSWORD('your_password');
4b9b3361

Ответ 1

Я получал ту же самую проблему ранее, я исправил ее, переустановив драгоценный камень mysql2.

Ответ 3

Для тех, кто в OS X El Capitain или более, это исправляет мою проблему:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

Для получения дополнительной информации fooobar.com/questions/56386/...

Ответ 4

У меня была аналогичная проблема в python: libmysqlclient.20.dylib вместо 18 на El Capitan. pip install --upgrade mysql исправил его, но работает только в python2.

Ответ 5

Просто хочу перезвонить здесь. У меня была такая же проблема с различием libmysqlclient.18.dylib 18-20. переустановка драгоценного камня mysql (зависимость от activerecord-mysql-adapter) сделала разницу. переустановка mysql2 ничего не сделала.

редактирование, чтобы уточнить: мое сообщение об ошибке восходит к моему gem mysql, но я нашел этот поток через поиск, поэтому я включаю его здесь:

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)

Ответ 6

Я использую Homebrew, поэтому я исправил эту проблему, очистив все шаг за шагом:

  • Прокомментируйте глагол mysql2 в приложении Rails Gemfile

    "# gem 'mysql2'"

  • Удалите gem mysql2 из пакета

    пакет установить

  • Удалите gem mysql2 (все версии)

    gem удалить mysql2

  • Обновление Homebrew

    brew update

  • Удалите все версии mysql

    brew удалить --force mysql

  • Переустановите mysql

    brew установить mysql

  • Uncomment mysql2 gem в Gemfile

    gem mysql2

  • Добавьте mysql2 в пакет

    пакет установить

Этот подход может быть немного излишним, но он чувствует себя чистым для меня.