2017-02-15 6 views
2

私はdjango 1.10、python3.4、mysqlclient、mysql5.5でWebサイトを実行しています。実稼働環境でMysqlが頻繁に使用されなくなりました(エラー2006)

バックグラウンドでさまざまなタスク(メールの送信、テーブルの更新など)を別々の時間に実行する複数の管理コマンドがあります。最近、私は離れて多くのMySQLを見て始めた(エラー2006)。

connection_timeoutをmax_connection ageより大きく変更しようとしました。これにより、エラー2006がほとんどの場合、実行中の関数で発生するのがやめられた問題の小さなシェアが解決されましたが、他のケースはそのままでエラー2006が頻繁に表示されます。

django.db関数を実行する前に.connection.close()を実行するか、try - exceptループに入れます。これらの場所では、このエラーはもう発生しませんが、私はこのtry-exceptループをすべての関数に入れることができません。

この繰り返しエラーの根本原因は何ですか?さまざまなソリューションとは何ですか?そして、私のコードの多くを変更する必要がないように、最良のソリューションは何ですか?

その他の変数:

我々は1.10にDjangoの1.7からアップグレードされ、最近はmysqlclientパッケージを更新し、問題点は、おそらく後に浮上しました。

私たちのサイトのトラフィックは、まさにこのアップデートの周りに何度も増えています。それは引き金になることができますか?

答えて

0

他のところで見られるように、問題はクエリが長すぎるか、サーバーが非アクティブなために接続を閉じたことが原因です。状況によっては大きく左右されますが、トランザクションの途中でない場合(2番目の可能性を破棄する)、Hook available for automatic retry after deadlock in django and mysql setup

のようなものを適用することができます
関連する問題