Rails Ошибка - Нет такого файла для загрузки - mysql - PullRequest
1 голос
/ 25 июля 2010

Я некоторое время боролся с установкой Rails на моем Mac. Ошибка, которую я получаю (в моем журнале разработки), говорит:

Status: 500 Internal Server Error no such file to load -- mysql

Вот некоторая информация:

  • Я могу успешно разгрести db: перенести мое приложение.
  • Я установил гем MySQL, и он появился в списке гемов: mysql (2.8.1).
  • У меня установлен Пассажир.
  • Ошибка связана с существующим приложением rails, которое работает на нашем производственном сервере.
  • При создании нового приложения Rails новая база данных MySQL (с использованием mysqladmin -uroot create sampledb) работает нормально.

Я гуглил это и не могу найти что-то конкретное для этой ошибки. Есть несколько связанных результатов, где решения связаны с путями при установке гема MySQL. Например,

sudo env ARCHFLAGS="-arch i386" gem install mysql -- \
  --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
  --with-mysql-include=/usr/local/mysql/include

Кто-нибудь еще сталкивался с этой проблемой или предлагал решение?

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Спасибо за ответ - хорошая новость, проблема решена.

Плохие новости - я не совсем уверен, что это исправило. Я могу сказать вам следующее: это было связано с установкой mysql gem и всеми флагами, указывающими на lib, include и config. Вероятно, существует дюжина разных версий одной и той же команды для Mac OS X Leopard.

Странно было то, что ruby, по-видимому, был связан с mysql на каком-то уровне (например, он умеет рейкать дб), но не работал при загрузке страницы.

Строка установки gem, которая в итоге работала, была такой:

sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Я бы хотел получить разъяснения о том, как и почему. Это сработало для меня, но не включает указатели на каталог приложения, каталог lib или каталог include.

0 голосов
/ 17 ноября 2010

Дважды проверьте, указан ли путь к папке mysql в системной переменной среды $ PATH.Если вы выполните

*echo $PATH* 

, то должно отобразиться что-то вроде

*/usr/local/mysql/bin*

. Вы также можете набрать

mysql и затем клавишу табуляциидважды.Если, если это не приводит к выводу списка команд mysql (таких как mysqladmin и т. Д.), Путь к корзине mysql не установлен правильно.Вы можете установить его, добавив правильный каталог в ваш файл профиля bash.

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile

Пожалуйста, проверьте заранее, если

*/usr/local/mysql/bin* 

действительно содержит команды mysql на вашем Mac.Важно: закройте и снова откройте окно терминала, чтобы изменения вступили в силу.

0 голосов
/ 25 июля 2010
  1. У вас установлено несколько ruby?Попробуйте вызвать эту команду, чтобы узнать: whereis ruby
  2. Какую версию ruby ​​вы используете в качестве пассажира?Вы можете проверить это в своей конфигурации apache или nginx
  3. Является ли пассажир версии ruby ​​тем же, что и ruby, который вы используете из командной строки?
  4. Установлен ли mysql gem в этой версии ruby?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...