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.

原文地址:https://blog.51cto.com/4988084/2446062

时间: 2024-11-09 17:44:18

MySQLdb 不活跃连接自动断开的解决方法的相关文章

SSH连接自动断开的解决方法(deb/rpm)

######### 修改后的: ## # tail -f -n 20 sshd_config#MaxStartups 10:30:60#Banner /etc/issue.net # Allow client to pass locale environment variablesAcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server # Set this to 'yes' to enable PAM authenticat

Oracle 笔记:PLSQL无法连接64位Oracle 解决方法

Plsql打开后提示错误,登录界面无连接目标选择. 原因:PLSQL本身好像就不支持64位的Oracle. 解决方法: 到Oracle 官网下载32位的 Oracle 客户端,地址为 http://www.oracle.com/technetwork/topics/winsoft-085727.html 解压下载的32位客户端即可. PLSQL登录界面暂时取消登录,先进入PLSQL界面,点击首选项,设置OCI库为刚才下载的32位客户端的OCI路径,路径中一定要包含 oci.dll . 添加环境变

NuGet 无法连接到远程服务器-解决方法

一. Entity Framework以下简称EF 安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包 安装完NuGet就可以安装EF了,有两种方式可以安装EF: 1.使用命令 install-package EntityFramework -Pre 但出现如下错误: 2.使用可视化工具,菜单栏>>工具>>程序包管理器>>管理解决方案的程序包 同样出现如下错误 出现该错误的原因是因为安装NuGet扩展后默认只有一个程序包源而我们需要用

【翻译自mos文章】job 不能自动执行的解决方法

job 不能自动执行的解决方法 参考原文: Jobs do not execute automatically (Doc ID 309945.1) 适用于: Oracle Server - Enterprise Edition - Version: 9.2.0.4 This problem can occur on any platform. 症状: Job 不能自动执行. JOB_QUEUE_PROCESSES 已经设置为大于0的值 你已经检查过 sga 变量kkjsre 的值,该值为0 例子

Android adt v22.6.2-1085508 自动创建 appcompat_v7 解决方法,最低版本2.2也不会出现

Android 开发工具升级到22.6.2在创建工程时只要选择的最低版本低于4.0,就会自动生成一个项目appcompat_v7,没创建一个新的项目都会自动创建,很是烦恼... 之前在网上也找过方法,都是天篇一律 创建工程时最低选择 4.0,但这样弊端很明显,不能 在低于4.0的版本上运行,应用的兼容性太弱了.. 也是烦恼了一段时间的,今天偶然发现了一个完美的解决方法 只要在创建工程的时候选择不创建Activity就可以解决了哈,很简单吧 Android adt v22.6.2-1085508

Ubuntu关机后会自动重启的解决方法

之前我装了ubuntu 14lts 开发版之后,本来用的好好的,但闲着没事更新了一下内核.之后就遇到ubuntu关机5秒后会自动重启这个问题,我有位用kilin的朋友也遇到这个问题.我反复研究发现,如果你的电脑插着U盘的话,关机是可以正常的,但这种方法不是很友好啊.之后,在贴吧看到最好的解决方法,只要联网状态下,在terminal输入如下命令即可解决. sudo apt-get install laptop-mode-tools Ubuntu关机后会自动重启的解决方法

Android wifi 从连接态自动断开的解决办法(dhcp导致)【转】

本文转载自:http://blog.csdn.net/DKBDKBDKB/article/details/38490201 对wifi部分的代码流程已经看了段时间,前两天终于解决了工作中遇到的一个wifi问题,问题描述及解决过程如下: 硬件平台:iMx53 软件平台:Android2.3 bug描述:1,选中热点,输入密码之后,会显示“正在获取ip地址...”,之后变为已保存而没有连接. 2,系统在wifi连接的前提下,重新上电,无法自动连接已保存的wifi热点. 3,系统wifi连接后,过一段

linux ssh 经常断开 的解决方法

1.现象 在linux ,用ssh进行远程连接时,经常会发生长时间后断线,或者是无响应,就像卡住的感觉(键盘输入不进去). 2.解决方法 在ssh客户端的linux设置 # sudo vim /etc/ssh/ssh_config 添加 ServerAliveInterval 20 ServerAliveCountMax 999 保存并退出,就可以了. 说明: 1.ssh是通过客户端定时发送心跳,维持连接的,若是客户端与服务端长时间没有发送心跳的话,服务端会认为客户端已经下线,因此,自动断开连接

ORACLE自动断开数据库连接解决办法

最近,有客户提出在系统的应用中出现数据库频繁自动断开连接(每10分钟)的异常现象,通过查找学习,找到如下两种解决方法.供大家参考. 分三个步骤在sqlplus环境下完成. 第一步,查询资源文件,找到CONNECT_TIME所在的profile名. select resource_name,profile from dba_profiles; 第二步,用alter命令修改profile中的值: alter profile MONITORING_PROFILE limit connect_time