mysql最少不活跃连接_MySQLdb 不活跃连接自动断开的解决方法

问题:

通过MySQLdb 连接mysql,如果长时间不活动,会被mysql断开,再次请求的时候会导致抛出异常"_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')"

原因:

这是因为mysql有两个参数来自动断开不活跃的连接,MySQLdb的连接超过这个时间后就会被mysql自动断开。

interactive_timeout

wait_timeout

可以登陆mysql 执行show global variables like "%timeout%" 进行查看

解决办法:

办法一:

修改mysql的配置,对上面两个参数进行修改

办法二:

使用conn的ping()方法进行重新连接

conn = MySQLdb.conn(xxxxx)

conn.ping(True)

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值