在我的应用程序中,我有一个按计划运行的跑步者脚本(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)
答案 0 :(得分:0)
通常这种情况是由于任一路径(因此您没有看到正确的database.yml或其他东西)或权限(您没有以正确的用户身份进行)。
通常适用于我的模式是放置一个crontab条目:
cd path/to/rails/app-root; script/runner MyController.thing_to_do
在应用程序运行的(伪)-user的crontab中。