资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

MySQLdb不活跃连接自动断开的解决方法-创新互联

问题:

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

大兴安岭网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

原因:

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:MySQLdb不活跃连接自动断开的解决方法-创新互联
文章分享:http://cdkjz.cn/article/deepgc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220