5

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 を使用しています。

4

2 に答える 2

1

私はここ数週間、同様の問題を抱えていましたが、それがどこから来たのかわかりませんでした. 昨日、ユニコーンの構成を調整し (サーバーは Debian + unicorn + MySQL で実行されています)、ワーカー数を 4 に変更し、ワーカーあたりの同時接続数を 2 に制限しました (config/database.yml 内)。今朝、問題がなくなったことに気付きました。このようなランダムな例外はもう発生しません。同時接続が多すぎてMySQLが不安定になったためだと思います。

私はちょうどそれについて私のブログに投稿しました。これがあなたにも役立つことを願っています。

于 2013-03-01T02:54:43.870 に答える
0

エラーは、「属性」が欠落していることを示しているようです。データベース スキーマとクラス構造の両方が「created_at」変数または列を処理しますか? 具体的には、User クラス/テーブルを調べます。

于 2012-07-24T22:48:33.690 に答える