Я только начинаю с Руби (и рельсов). Я сделал настройку в соответствии с http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems, используя rvm
. У меня с sqlite все хорошо работает.
Теперь я хотел бы попробовать преобразовать все в MySQL, так как это то, чем я занимаюсь большую часть своей разработки. В моем Gemfile я заменил sqlite на mysql2:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Но когда я пытаюсь создать БД для рельсов в MySQL, я получаю:
$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Я видел другие сообщения, рекомендующие переустановку MySQL через homebrew (мой был установлен через загружаемый DMG), но я бы предпочел не делать этого, поскольку у меня уже есть несколько других баз данных для других проектов, не связанных с Ruby.
У меня действительно есть файл, который ищет Rails; он установлен в /usr/local/mysql/lib/libmysqlclient.18.dylib
. Как лучше всего указать Rails, как его найти?
источник
Ответы:
Решение довольно простое; Добавьте путь к библиотеке в файл ~ / .bash_profile или ~ / .profile:
Если он все еще не работает (эта работа для меня):
Есть много блогов
install_name_tool
, которые мне не подходят, потому что я использую OSX Lion:источник
.bash_profile
самом деле это не применимо.usr/lib
, но символическая ссылка наusr/local/lib
будет работать:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
В Эль-Капитане я получил
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
В El Capitan
/usr/lib/
теперь есть ограниченный флаг, и в него нельзя писать без отключения безопасности, поэтому я просто вставил ссылку/usr/local/lib
.Сервер Rails снова работает нормально.
источник
Хотя заголовок этого вопроса точно описывает проблему, с которой я столкнулся, обстоятельства отличаются от описанных в предыдущих ответах, как и решение.
В моем случае (El Capitan, mysql, установленный через homebrew),
brew update && brew upgrade
пакет mysql был обновлен до 5.7.10 (с 5.6.x).Обновление вызвало
libmysqlclient.18.dylib
замену наlibmysqlclient.20.dylib
, ноmysql2
самоцвет все еще полагался на первое.Чтобы решить проблему, я сделал:
gem uninstall mysql2 && gem install mysql2
Обратите внимание, что аналогичные проблемы могут возникать с разными библиотеками, управляемыми домашним пивом (например, см. Мой собственный ответ на этот вопрос )
источник
pip uninstall mysqlclient
аpip install mysqlclient
также работал.Это сработало для меня. Я установил MySQL из файла DMG.
источник
Работал у меня. Все подобные нет.
источник
Я столкнулся с этой проблемой после полного удаления и новой установки MySQL. В частности:
Я даже не трогал свое приложение Rails.
Переустановка
mysql2
гема решила эту проблему.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
источник
Если вы используете MySQL, установленный из HomeBrew в El Capitan, вам следует связать его следующим образом:
источник
Для MySql 5.6, установленного из DMG на Mavericks
источник
Я подтверждаю, что патч от Abhishek действительно работает.
это работает и для Йосемити.
примечание: вместо ссылки на конкретную версию mysql используйте тот факт, что mysql уже построил символическую ссылку:
это решение действительно работает для Xcode и C API.
источник
Для тех, кто употребляет варево. Просто свяжите свою версию mysql с параметром "--force".
источник
brew link mysql@5.7 --force
. Работает отлично.Чтобы быть уверенным, какая символическая ссылка необходима (зависит от версии mysql и версии ОС):
так что :
источник
Это работает для меня:
источник
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Я использую Rails REE (2.3.4) для имеющейся у нас унаследованной системы. После обновления до El Capitan запуск скрипта / консоли вызвал ошибку, и мое приложение больше не запускалось (с использованием функции pow):
Из этого же потока, приведенного выше, я решил, что мне нужно выполнить эту команду в терминале:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Эта команда вызвала ошибку: «ln: /usr/lib/libmysqlclient.18.dylib: Operation not allowed». Я никогда раньше не видел такой ошибки.
Немного покопавшись, я нашел эту статью: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html и следил за инструкции по отключению SIP (новая защита целостности системы El Capitan). После отключения SIP и перезагрузки команда ln работала нормально. Потом отключил SIP. Теперь все нормально. Мое приложение снова запускается с использованием функции pow и без ошибок при запуске скрипта / консоли. Я надеюсь, это поможет вам.
источник
На Mac Sierra при использовании Homebrew выполните:
источник
и
работал у меня.
источник
Это сработало для меня. Все, что мне нужно было сделать, это удалить гем mysql2 и снова установить его, используя следующие команды
источник
Я использую Mac OS, и я застрял с этой ошибкой даже после удаления / удаления всех mysql и MAMP. Раньше устанавливал
brew install mysql
и тоже пользовалсяMAMP
. addling softlink у меня не работал.Это было решено только путем удаления всех существующих mysql. а затем установите mysql через MySQL отсюда .
источник
используйте это из командной строки:
пробовал на нескольких компах с maverick всегда работает
источник
Если вы используете Bitnami RubyStack и столкнулись с аналогичной проблемой. Попробуй это
источник
Моя проблема с загрузкой этого файла пакета была плохой символической ссылкой. Так что проверьте ссылку и при необходимости замените ее на новую. В этот момент все стало на свои места. Не знаю, как это случилось, но это случилось. Впервые возникла такая синтаксическая ошибка.
источник
Я работал с командой rails g model и получил эту ошибку:
Я пробовал это, и это работало для меня. Я использовал Mavericks 10.9.5
Спасибо!
Теперь я использую Yosemite 10.10.5, и у меня такая же ошибка, поэтому я просто запустил эту команду на терминале, и она была успешно исправлена.
также вы можете попробовать:
Оба они мне подходят. Надеюсь, это может быть полезно!
источник
У меня возникла эта проблема «Библиотека не загружена: libmysqlclient.18.dylib» при импорте MySQLdb из MySQL. Для python3 :
Решение работает для меня: Mac OS X 10.11.1 Python3.5
источник
Единственное, что у меня сработало, это:
Замените пути mysql и gems, чтобы они соответствовали вашей системе.
источник
После долгих поисков в Google и всех попыток ... единственное, что решило мою проблему, - это эта команда:
Я использую MacBook Pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: четверг, 23 июня, 18:25:34 PDT 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 Mysql: 5.6.19
источник
Спасибо. После обновления Homebrew у моих приложений Rails возникли проблемы на моем Mac. Я переустановил MySQL (5.7) из исходников, тогда мне пришлось это сделать
на основе того, что я прочитал выше, и в моем Gemfile
и в database.yml
источник
На этот вопрос уже есть много ответов, особенно на этот https://stackoverflow.com/a/10847618/5515861 . Я только хочу добавить пару примечаний. Если вы, ребята, используете Mac, я не знаю, как вы устанавливаете MySQL, но первое, что нужно исследовать, - это где находится ваша установка MySQL. Для меня MySQL установлен с использованием
brew
для версии5.7
, и расположение есть/usr/local/opt/mysql@5.7/
, поэтому добавьте следующее в my~/.zshrc
.Надеюсь, ты исправишь свои проблемы 😁
источник