By default, MySQL-5.0 does not automatically reconnect.
mysql连接如果长时间idle的话,(时间:默认为8小时),会自动断开,而且不会为原连接自动恢复。
在python中,如果应用程序某个模块使用了持久化的db链接,则失效后,继续使用,会报错: 2006,MySQL server has gone away
解决办法: 比较ugly
在每次连接之前,判断该链接是否有效。 MySQLdb提供的接口是 Connection.ping(),
(奇怪,ping() 这个方法在 MySQLdb 的文档中居然没有文档化, 害我找了好久)
采用 类似:
try:
conn.ping()
except Excption,e: #实际对应的 MySQLdb.OperationalError 这个异常
conn = new conn
的方法解决
为了测试出 ping()的效果,
我在代码中先关闭了 conn, 示意如下:
try:
conn.close()
conn.ping()
except Excption,e: #实际对应的 MySQLdb.OperationalError 这个异常
print e
conn = new conn
结果爆出了另外一个错误:
InterfaceError: (0, '')
google了一大圈都没找到正确原因,一度还以为是:
File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 147, in execute charset = db.character_set_name()
的问题, (因为错误的traceback 指向了此处...)
实际上: 对任何已经close的conn进行 db相关 操作,包括ping()都会爆出这个错误。
(这说明 长时间idle导致的conn失效与 conn.close()之后的状态是不一样的)精确catch 这个错误的Exception 是 MySQLdb.Error 。
关于此错误详细的解释帖子:
http://sourceforge.net/projects/mysql-python/forums/forum/70461/topic/1536427
因此:处理长时间idle问题,正常使用ping(),并且明确的创建一个新的连接即可。
分享到:
相关推荐
鸟人封装的MySQLdb操作接口,包含读写分离、断线重连的逻辑,对于具体应用可以继承和扩展
python连接mysql数据库需要MySQLdb win7 64位安装好就可以用了。 具体代码可以参考:http://www.runoob.com/python/python-mysql.html
mysql-python,包含libmmd.dll+libguide40.dll 基于python2.6和win32
这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...
python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。
封装了mysqldb方法方便调用。直接在脚本引用
python MySQLdb.connect 读取mysql数据库
python安装模块MySQLdb时,提示python2.7未安装,安装失败时,命令行python register.py,然后重新安装MySQLdb,就能正确安装。
windows环境下配置python3 mysqldb
MySQLdb __init__.py converters.py mysql python
Windows Python 连接MySQL数据库需要的module,32位以及64位,根据python版本安装
本文主要内容python MySQLdb数据库批量插入insert,更新update的相关知识,感兴趣的朋友跟随脚本之家小编一起看看吧
python调用mysql数据库通常通过mysqldb模块,简单说下如何调用 1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: 1. MySQL-python:是封装了MySQL C驱动的Python驱动; 2.mysql-connector-...
在使用python调用mysql数据库的时候,需要引入对应的数据包,这个包包含了python的64位和32位mysqldb库,
资源分类:Python库 所属语言:Python 资源全名:mysqldb_wrapper-0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Python-MySQLdb-examplePython-MySQLdb-example本文主要介绍通过MySQLdb实现Python对MySQL数据库的访问和操作。备注:execute 把一条查询语句发送给mysql服务器,这里有两种情况:CREATE、INSERT、DELETE、UPDATE、...
python3.6使用MySQLdb连接mysql需要mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl
MySQL-python-1.2.5.win-amd64-py2.7
windows mysqldb for python2.5 in windows