Ruby on Rails не может подключиться к базе данных из скрипта бегуна - PullRequest
2 голосов
/ 17 апреля 2009

В моем приложении у меня есть запущенный скрипт по расписанию (crontab), который должен подключиться к базе данных и получить некоторую информацию. Я получаю следующую ошибку при попытке выполнить запрос (используя Model.find (...)):

.../vendor/rails/railties/lib/commands/runner.rb:45: .../vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:471:in `real_connect': Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) (Mysql::Error)

1 Ответ

0 голосов
/ 17 апреля 2009

Как правило, такие вещи случаются либо из-за путей (то есть вы не видите правильный database.yml или чего-то еще), либо из-за разрешений (вы не делаете это как правильный пользователь).

Шаблон, который обычно работает для меня, - это поместить запись в crontab следующим образом:

cd path/to/rails/app-root; script/runner MyController.thing_to_do

в crontab (псевдо) -пользователя, под которым приложение запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...