【问题标题】:Ruby on Rails cannot connect to database from runner scriptRuby on Rails 无法从运行器脚本连接到数据库
【发布时间】:2009-04-16 22:33:48
【问题描述】:

在我的应用程序中,我有一个按计划运行的运行器脚本 (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)

【问题讨论】:

    标签: mysql ruby-on-rails


    【解决方案1】:

    通常发生这种事情是因为路径(因此您没有看到正确的 database.yml 或其他内容)或权限(您没有以正确的用户身份进行操作)。

    通常对我有用的模式是像这样放置一个 crontab 条目:

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

    在应用程序运行的(伪)用户的 crontab 中。

    【讨论】:

    • 原来我的运行脚本默认没有运行生产环境。强制他们使用生产数据库可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多