Rails на OSX 10.11 El Capitan: библиотека не загружена: libmysqlclient.18.dylib
Поскольку я обновил OSX до 10.11, я больше не могу использовать MySQL с моим Rails-приложением:
$ rails s
/Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require': dlopen(/Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
Referenced from: /Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle
from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
Я нашел другие сообщения о похожих проблемах, но я слишком много начинаю в этом отношении, а версии менялись после решения и т.д.
Ответы
Ответ 1
Предыдущий ответ (pre El Capitan) заключался в создании символической ссылки из каталога mysql lib для файла библиотеки в /usr/lib, например:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Однако теперь это приводит к тому, что "операция не разрешена" из-за контроля целостности ОС OS. Это можно обойти, отключив это. Однако гораздо более простое решение (и одно, которое я могу проверить, сработало) состоит в том, чтобы просто символизировать его в /usr/local/lib вместо:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Хорошее яблоко.
Ответ 2
У меня была та же проблема, что и только с открытым терминальным ударом:
sudo nano ~/.bash_profile
вставьте следующие строки:
MYSQL=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
и т.д.