【问题标题】:Random MySQL exceptions in my Rails application我的 Rails 应用程序中的随机 MySQL 异常
【发布时间】:2012-07-23 07:55:52
【问题描述】:

我的 Rails 应用程序的 MySQL 后端出现问题。

基本上每次部署时,我都会开始遇到奇怪的异常,例如

ActiveRecord::StatementInvalid: Mysql2::Error: 
NoMethodError: undefined method `fields' for nil:NilClass
ActiveModel::MissingAttributeError: missing attribute: created_at
ActiveRecord::StatementInvalid: Mysql2::Error: Lost connection to MySQL server during query
ActiveRecord::UnknownPrimaryKey: Unknown primary key for table users in model User.
RuntimeError: Session collision on '"017fab6b21d2ef20d30e6119f7bf...."'

我不确定这是否是由于突然加载而发生的,我的 MySQL 实例无法承受,但在部署后重新启动应用程序时会发生 99%。

这可能是什么原因造成的?我有 Rails 3.2.6、Ubuntu 12.04、MySQL 5.1.63

【问题讨论】:

  • 我这里也有同样的问题,你现在有什么想法吗?

标签: mysql ruby-on-rails exception


【解决方案1】:

最近几周我遇到了类似的问题,但不知道它是从哪里来的。昨天我调整了 unicorn 配置(我们的服务器在 Debian + unicorn + MySQL 上运行),将 worker 数量更改为 4,并将每个 worker 的并发连接数限制为 2(在 config/database.yml 中)。今天早上我发现问题消失了,不再发生这样的随机异常。所以我猜是因为太多的并发连接使 MySQL 不稳定。

我刚刚在my blog 上发布了关于它的信息。希望这对您也有帮助。

【讨论】:

    【解决方案2】:

    错误似乎表明缺少“属性”。您的数据库架构和类结构是否都处理“created_at”变量或列?我会专门看一下 User 类/表。

    【讨论】:

    • 该错误仅在部署后的短时间内发生。正如问题所述,异常没有任何意义,这意味着应用程序在几分钟后就可以正常工作。
    猜你喜欢
    • 2013-03-15
    • 2019-11-14
    • 2019-09-19
    • 1970-01-01
    • 2014-10-21
    • 2013-01-28
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    相关资源
    最近更新 更多