時々このエラーが発生します。私はstackoverflowでいくつかのソリューションを読んだが、彼らはレール2またはmysqlについてだった。どんな助けもありがとう。Mysql2エラーMySQLサーバーがなくなった
ActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away
時々このエラーが発生します。私はstackoverflowでいくつかのソリューションを読んだが、彼らはレール2またはmysqlについてだった。どんな助けもありがとう。Mysql2エラーMySQLサーバーがなくなった
ActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away
ホストされているサーバーが過負荷になっていることがあり、場合によってはMySQLサーバーがクエリを実行できません。パフォーマンス監視ツールについてホスティングプロバイダに問い合わせるか、直接この問題について教えてください。このエラーメッセージは、あなたに答えを与えるのに十分であるはずです。
エラーの原因は数多くあります。考えられる原因については、下のページを参照してください。おそらくあなたのパケットサイズは小さすぎると設定されています。
私が実行したとき、私はまったく同じ問題が発生する「すくいデシベルを:リセット」私の開発環境上でコマンドを。しかし、私は "rake db:migrate:reset & & rake db:seed"を実行すると、このエラーメッセージが表示されることはありません。
非常に奇妙ですが、これによりこの問題が発生する可能性があります。私のポストが何らかの形で解決策につながるなら、私はうれしいです。
同じ問題が 'rake db:reset'を実行しています。例外のソース行の直前に 'ActiveRecord :: Base.connection.reconnect! 'を置くことで、それを修正しました。 – unnu
1つのステートメントを呼び出すことによってrake db:seed
でseeds.rb
を通じて大きなファイルをインポートしようとしているときに、私はこのエラーを得た:
ActiveRecord::Base.connection.execute(IO.read("path/to/file.sql"))
そして、私はActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away...
SOLUTION
を得る上で保管私はこれを2つの組み合わせで解決しました:
database.yml
にデータベースの仕様にreconnect: true
を追加し、個別の文を実行します。
f = File.new('path/to/file.sql')
while statements = f.gets("") do
ActiveRecord::Base.connection.execute(statements)
end
私はからいくつかのコメントを削除するために変更する必要がありました私のSQLファイル - 彼らはActiveRecordを何らかの理由でエラーを投げたが、それが私の問題を解決した。
StackOverflowが 'f = File.new( 'path/to/file')という行をフォーマットしない理由はわかりません。sql ') 'コードのように - モデレータがそれを修正することができれば、それはすばらしいでしょう。 –
ああ、正当な理由があれば、このブログ記事の解決コード(手順2)を修正しました:http://nathan.seedoftruth.net/post/15237050763/rails-3-load-sql-directly –
「MySQLサーバーがなくなった」というメッセージが表示されますか?このエラー(phpMyAdmnin、console)が発生したときに、あなたのMySQLサーバーに接続しようとしましたか? – Hnatt
私はページをリフレッシュするときに動作します。 – ziCk
このエラーはランダムなページや特定の場所で発生しますか?おそらく無効なクエリに問題がありますか? – Hnatt