6

以下を使用して 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_pa​​cket が 16M ではなく 128M であることを除いて、これはデフォルトの構成ファイルです。

データベースへのクエリは非常に単純で、最大で約 100 レコードを取得します。

誰でもこれを修正するのを手伝ってもらえますか? 私が持っていたアイデアの 1 つは、try/except を使用することでしたが、それが実際に機能するかどうかはわかりません。

前もって感謝します、

ジェイミー

更新: try/except 呼び出しが機能しませんでした。

4

4 に答える 4

25
于 2012-09-16T03:40:12.593 に答える
-3

私にとって、これは使用して修正されました

MySQLdb.connect("127.0.0.1","root","","db" )

それ以外の

MySQLdb.connect("localhost","root","","db" )

その後

df.to_sql('df',sql_cnxn,flavor='mysql',if_exists='replace', chunksize=100)
于 2016-07-18T03:49:09.823 に答える