这两天在python中用MySQLdb module操作数据库,碰到了如下错误信息:
OperationalError: (2006, 'MySQL server has gone away'), 发生在一个长时间的读操作之中。
看起来是connection在idle timeout后被关闭了。
之后找到了解决方案,就是碰到 AttributeError, MySQLdb.OperationalError之后就重新连接并再次执行上次的sql语句。
封装的代码如下:
class DB:
conn = None
cursor = None
def connect(self):
self.conn = MySQLdb.connect (host = global_srcDB_Host,
user = global_srcDB_User,
passwd = global_srcDB_PWD,
db = global_srcDB_DB)
def execute(self, sql):
try:
cursor = self.conn.cursor()
cursor.execute(sql)
except (AttributeError, MySQLdb.OperationalError):
self.connect()
cursor = self.conn.cursor()
cursor.execute(sql)
return cursor
def close(self):
if(self.cursor):
self.cursor.close()
self.conn.commit()
self.conn.close()
使用如下:
db = DB()
cursor = db.execute (sql)
db.close()
至此,问题解决。
分享到:
相关推荐
django.db.utils.OperationalError: (1045, “Access denied for user ‘账号’@’localhost’ (using password: YES)”) 错误。 这种错误指的是连接数据库时账号密码错误。 1.只需要修改setting.py文件里的...
同事在使用python3操作...一看错误提示就是语法错误,还在%附近,笔者之前写过一篇python3操作数据库的文章中,提到过,sqlite的占位符请使用 ?,重要的事情就不说三遍了。获取更多知识,可以关注我的公众号:码农小麦
第一个报错:sqlite3.OperationalError: table csv has 5 columns but 4 values were supplied 原因:没有使用与作者一致的csv数据内容 我的csv文件内容为4.1中的数据内容,进行了重复而已 原创文章 36获赞 28访问...
出现这个问题的原因不是’/xxx.... 您可能感兴趣的文章:MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决winxp 安装MYSQL 出现Error 1045 access denied 的解决方法Mysql启动中 Inn
OperationalError: (2006, ‘MySQL server has gone away’) OperationalError: (2013, ‘Lost connection to MySQL server during query’) 查询mysql全局变量SHOW GLOBAL VARIABLES;可以看到wait_timeout,此变量...
由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是我便在一个夜深人静的夜晚对数据库进行的迁移及前台应用程序进行了调整...
今天,使用mysql workbench 给一张表添加了一列varchar类型的列。在插入中文数据时出现 这是编码问题,只要将表的类型修改为utf-8就ok了。 alter table 数据库名.表名 convert to character set utf8; 执行完这条...
Socket通信异常,在实际项目所总结的解决方法
django.db.utils.OperationalError: (1091, "Can't DROP 'email'; check that column/key exists") 所以进数据库把对应的表删除了,想着重新生成这张表. 删除表以后执行: python3 manage.py makemigrations python3 ...
Python 3.6 Django 2.1.0 Sqlite 3.8.11 执行:python manage.py runserver 错误提示: Django.db.utils.NotSupportedError:URIs not supported 修改:/usr/local/python3/lib/python3.6/site-packages/django/db/...
本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法。分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012。 按照Python版本来选择下载pymssql模块,这样才能连接上sql server。 我安装...
pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 如何解决这个问题呢 出现问题的代码 class MysqlConnection(object): mysql操作类,对mysql数据库进行增删改查 def ...
主要介绍了Python MySQLdb 使用utf-8 编码插入中文数据问题,需要的朋友可以参考下
mysql文档中的解释 If you get Commands out of sync; you can’t run this command now in your client code, you are calling client functions in the wrong order. This can happen, for example, if you ...
备份应用数据库内容 下载mysqlclient pip install mysqlclient python manage.py dumpdata 应用名>xx.json 就会生成一个xx.json的文件,xx是随便命名的 数据表结构同步 DATABASES = { 'default': { ...
python3 manage.py makemigrations # 生成数据库迁移文件 python3 manage.py migrate # ...1.报错: XX表已经存在,django.db.utils.OperationalError: (1050, “Table XX already exists 我:删表,但是报错,Canno
django.db.utils.OperationalError: FATAL: database "hello_django_dev" does not exist 运行docker-compose down -v以删除卷以及容器。 然后,重新构建映像,运行容器,然后应用迁移。 检查数据库 docker-...
今天有碰到这种情况,数据库中有张表没办法通过migration来更改, migrate时报 django.db.utils.OperationalError: (1050, “Table ‘表名’ already exists)索性就直接把这张表删了重新导. 1 删除数据库中的django_...
支持python2.6的pyodbc————连接MS SQL SERVER 的第三方插件。
django.db.utils.OperationalError: (1050, "Table 'xxx' already exists") 要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 –fake-initial 来处理 python manage.py migrate –fake-initial 如果...