经过MySQLdb 链接mysql,若是长时间不活动,会被mysql断开,再次请求的时候会致使抛出异常"_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')"mysql
这是由于mysql有两个参数来自动断开不活跃的链接,MySQLdb的链接超过这个时间后就会被mysql自动断开。sql
interactive_timeout
wait_timeoutide
能够登录mysql 执行show global variables like "%timeout%" 进行查看this
修改mysql的配置,对上面两个参数进行修改code
使用conn的ping()方法进行从新链接orm
conn = MySQLdb.conn(xxxxx)
conn.ping(True)server
ping(...) Checks whether or not the connection to the server is working. If it has gone down, an automatic reconnection is attempted. This function can be used by clients that remain idle for a long while, to check whether or not the server has closed the connection and reconnect if necessary. New in 1.2.2: Accepts an optional reconnect parameter. If True, then the client will attempt reconnection. Note that this setting is persistent. By default, this is on in MySQL<5.0.3, and off thereafter. Non-standard. You should assume that ping() performs an implicit rollback; use only when starting a new transaction. You have been warned.