我的 Rails 应用程序中的随机 MySQL 异常
Posted
技术标签:
【中文标题】我的 Rails 应用程序中的随机 MySQL 异常【英文标题】:Random MySQL exceptions in my Rails application 【发布时间】: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
【问题讨论】:
我这里也有同样的问题,你现在有什么想法吗? 【参考方案1】:最近几周我遇到了类似的问题,但不知道它是从哪里来的。昨天我调整了 unicorn 配置(我们的服务器在 Debian + unicorn + MySQL 上运行),将 worker 数量更改为 4,并将每个 worker 的并发连接数限制为 2(在 config/database.yml 中)。今天早上我发现问题消失了,不再发生这样的随机异常。所以我猜是因为太多的并发连接使 MySQL 不稳定。
我刚刚在my blog 上发布了关于它的信息。希望这对您也有帮助。
【讨论】:
【参考方案2】:错误似乎表明缺少“属性”。您的数据库架构和类结构是否都处理“created_at”变量或列?我会专门看一下 User 类/表。
【讨论】:
该错误仅在部署后的短时间内发生。正如问题所述,异常没有任何意义,这意味着应用程序在几分钟后就可以正常工作。以上是关于我的 Rails 应用程序中的随机 MySQL 异常的主要内容,如果未能解决你的问题,请参考以下文章