Я боролся с этим в течение некоторого времени.
Я установил Rails 3, gem, mysql на свой компьютер Snow Leopard. Все шло хорошо, пока я не создал свой первый проект и не попытался запустить
rails server
После запуска этого я получаю:
jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
jontybrook$
Насколько я могу судить, проблема в самоцвете mysql2. MySQL, кажется, работает нормально, и мой Gemfile ссылается на mysql2, мой файл database.yml также выглядит нормально.
Ошибка упоминает
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
И все еще
jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb em.rb error.rb mysql2.bundle result.rb
MySQL2.bundle есть !?
Если я использую старый MySQL драгоценный камень, WEBrick загружается нормально. Но это не идеально, не так ли?
Я перепробовал все, что Google может дать мне! Любая помощь высоко ценится.
источник
/usr/lib
, эта ссылка преобразуется в место, где она фактически установлена. На OS X это обычно под/usr/local/mysql/lib
, где ссылка на эту команду. Если ваша библиотека установлена в другом месте, вам нужно настроить эту команду. Введитеlocate libmysqlclient.18.dylib
и подставьте результат для первого аргумента после-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
что не так?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Это запустит процесс индексации вашего жесткого диска, что заставитlocate
команду работать в будущем. Однако в большинстве случаев я думаю , что вам не нужно этого делать, и вы можете просто использовать команду, которую luvlss предоставил как есть.Я решил это, в конце концов!
Я переустановил Ruby и Rails под RVM. Я использую Ruby версии 1.9.2-p136.
После переустановки под rvm эта ошибка все еще присутствовала.
В конце концов волшебная команда, которая решила это, была:
Надеюсь, это поможет кому-то еще!
источник
mysql2-0.2.6/lib/mysql2/mysql2.bundle
где установлены ваши драгоценные камни.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Это исправление сработало очень хорошо для меня:
Добавьте следующее в ваш ~ / .profile
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
источник
Для меня это было только потому, что я обновил mysql, но не обновил gem mysql2 - переустановка gem исправит это ...
gem pristine mysql2
источник
У меня такая же проблема. Похоже, он не может найти библиотеку libmysqlclient. Временное исправление, которое сработало для меня, заключается в следующем:
Я не уверен, где конфиг указывает путь загрузки или что он установлен, но моя установка mysql, похоже, не в нем. Я отправлю еще раз, если найду более постоянное решение.
Изменить: На самом деле это исправление, кажется, более точно решить проблему.
источник
Добавьте ниже к вашему
~/.bash_profile
:Это сработало для меня
источник
В обновлении OSX El Capitan, когда вы делаете это:
выдает ошибку вроде
Поэтому, чтобы избежать этого, сначала нужно найти
libmysqlclient.18.dylib
командуВ моем случае это вернулось
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Поэтому вместо того,
usr/lib/
чтобы создать символическую ссылку,usr/local/lib/
вот так:Больше деталей: https://forums.developer.apple.com/thread/7935
источник
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
папкеследующие строки работают для меня. Я использую Mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
источник
Просто столкнулся с этой проблемой. Все, что мне нужно было сделать, это удалить mysql2 gem и переустановить его. Надеюсь, что это работает для других людей
источник
All versions
на приглашение. Затем я запустил обновление brew mysql и затем gem install mysql2.Вот как это работает для меня:
Я выполнил следующую команду
следующую sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Мои окружения:
$ rails -v Rails 3.0.6
$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, для osx10.6 (i386) с использованием readline 5.1
$ ruby -v
ruby 1.9.2p180 (2011-02-18, редакция 30909) [x86_64-darwin10.7.0]
Надеюсь, это кому-нибудь поможет.
источник
Спасибо, Огапо! Экспорт этого псевдонима работал для меня, и затем я перешел по ссылке, и в моем случае mysql2.bundle был в /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, так Я настроил install_name_tool, чтобы модифицировать этот пакет, а не один в ~ / .rvm, и получил, что все работает так, как должно быть.
А сейчас:
источник
привет у меня сработало по рекомендованной ссылке от Фреди Андерсена
просто пришлось перейти на мою версию mysql, в команде, спасибо
источник
Я решил эту проблему, удалив свой gemset для моего текущего проекта, воссоздав его и повторно запустив установку пакета. Я думаю, что я вызвал это, установив более новую версию mysql.
источник
У меня была эта проблема при работе с Django, я использую
brew
для установки многих моих программ с открытым исходным кодом, и мне нужно было сделать следующее, так как я использовалbrew
для установкиmysql
:Обязательно замените своей версией библиотек!
источник
bundle install mysql --force
помог мне. Он переустанавливал зависимости, которые в результате пропалиbrew uninstall mysql
.источник
Unknown switches '--force'
Джонти, я тоже с этим борюсь.
Я думаю, что здесь есть ключ:
Заметьте, что путь к дилибу довольно короткий?
Я пытаюсь выяснить, где инструкции по установке гемов выходят за пределы пути dylib, но он идет медленно, поскольку я сам никогда не создавал гем.
Я выложу больше, если найду больше!
источник
У меня была точно такая же проблема несколько дней назад. В конце концов мне удалось решить это. Я не совсем уверен, как, но я все равно скажу вам, что я сделал. Может быть, это поможет вам.
Я начал с загрузки RVM. Если вы еще не используете его, я настоятельно рекомендую это сделать. Это в основном создает песочницу для новой отдельной установки Ruby, RoR и RubyGems. Фактически, вы можете иметь несколько установок одновременно и мгновенно переключаться друг на друга. Работает как часы.
Почему это полезно? Потому что вы не должны связываться с установкой Ruby по умолчанию в OS X. Система зависит от этого. Лучше всего оставить установку Ruby и RoR по умолчанию в одиночку и создать новую, используя RVM, которую вы можете использовать для собственной разработки.
После того, как я создал свою отдельную установку Ruby, я просто установил RoR, RubyGems и mysql, и это сработало. Для точных шагов, которые я предпринял, см. Мой вопрос: Установка Rails, MySQL и т. Д. Все идет не так
Опять же: я не знаю наверняка, что это решит вашу проблему. Но это определенно помогло мне, и в любом случае использование RVM настоятельно рекомендуется.
источник
Я все еще обнаружил, что с вышеупомянутыми решениями он не работал (например) с плагином Rails для TextMate. Я получил похожую ошибку (при получении схемы базы данных).
Итак, что сделал, откройте терминал:
Заменить mysql-5.5.8-osx10.6-x86_64 своим собственным путем (или mysql).
Это делает символьную ссылку на библиотеку, теперь rails запускается из командной строки, а также плагины TextMate, такие как ruby-on-rails-tmbundle .
Чтобы было ясно: это также исправляет ошибку, которую вы получаете при запуске сервера rails.
источник
Обычно это происходит при обновлении mysql. Установленный гем mysql2, который был построен на старых библиотеках mysql, не может работать с новыми библиотеками. Просто нужно переустановить его.
Удалите mysql2 с помощью
gem uninstall mysql2
. Затем установите его сgem install mysql2
источник
Я решил это, создав файл .rvmrc в папке с моим проектом:
затем введите мой путь к проекту
тогда я бегу
источник
Моя версия команды luvlss:
Mac OSX 10.10.5
MySQL 5.6.27
Пассажир 5.0.21
sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Если вы пробуете много разных ссылок, как я, сделайте некоторую очистку с:
sudo unlink /usr/lib/libmysqlclient.18.dylib
источник
Откройте терминал и запустите следующее:
Он должен работать.
источник
Если вы используете OSX и установили mysql с помощью brew, вы можете:
Если у вас возникли проблемы с версией (у меня был запущен mysql 5.7, а для моего гема требовалось 5.6.25), вы можете
источник
Для меня мне пришлось вручную удалить MySQL
источник