MySQLdb不活跃连接自动断开的解决方法

问题:

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

我们提供的服务有:网站建设、成都网站建设、微信公众号开发、网站优化、网站认证、天门ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的天门网站制作公司

原因:

这是因为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.

标题名称:MySQLdb不活跃连接自动断开的解决方法
文章网址:http://www.hxwzsj.com/article/pcopsj.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 网站建设方案 成都网站建设推广 成都企业网站制作 成都品牌网站设计 响应式网站建设 定制网站设计 专业网站设计 高端网站设计 网站建设 网站建设公司 成都网站建设 营销型网站建设 成都网站制作 成都网站建设 手机网站制作 成都企业网站设计 成都网站建设 营销网站建设 成都网站制作 LED网站设计方案 成都网站建设公司 网站设计