以下を使用して Web アプリにアクセスした後:
- Python 2.7
- ボトル マイクロ フレームワーク v. 0.10.6
- Apache 2.2.22
- mod_wsgi
- Ubuntu Server 12.04 64 ビット上。数時間後に次のエラーが表示されます。
OperationalError: (2006, 'MySQL server has gone away')
Python に含まれているネイティブの MySQL を使用しています。通常、サーバーにアクセスしていないときに発生します。これを使用して、すべての接続を閉じようとしました:
cursor.close()
db.close()
ここで、db は標準の MySQLdb.Connection() 呼び出しです。
my.cnf ファイルは次のようになります。
key_buffer = 16M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
max_allowed_packet が 16M ではなく 128M であることを除いて、これはデフォルトの構成ファイルです。
データベースへのクエリは非常に単純で、最大で約 100 レコードを取得します。
誰でもこれを修正するのを手伝ってもらえますか? 私が持っていたアイデアの 1 つは、try/except を使用することでしたが、それが実際に機能するかどうかはわかりません。
前もって感謝します、
ジェイミー
更新: try/except 呼び出しが機能しませんでした。