这两天在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)")`这样的错误,这通常意味着Django无法使用指定的凭据连接到MySQL数据库。错误信息清楚...
同事在使用python3操作...一看错误提示就是语法错误,还在%附近,笔者之前写过一篇python3操作数据库的文章中,提到过,sqlite的占位符请使用 ?,重要的事情就不说三遍了。获取更多知识,可以关注我的公众号:码农小麦
OperationalError: (2006, ‘MySQL server has gone away’) OperationalError: (2013, ‘Lost connection to MySQL server during query’) 查询mysql全局变量SHOW GLOBAL VARIABLES;可以看到wait_timeout,此变量...
django.db.utils.OperationalError: (1050, "Table 'xxx' already exists") 要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 –fake-initial 来处理 python manage.py migrate –fake-initial 如果...
第一个报错:sqlite3.OperationalError: table csv has 5 columns but 4 values were supplied 原因:没有使用与作者一致的csv数据内容 我的csv文件内容为4.1中的数据内容,进行了重复而已 原创文章 36获赞 28访问...
在使用MySQL数据库的过程中,有时会遇到“ERROR 1017: Can’t find file: ‘/xxx.frm’”这样的错误。这个问题并不意味着文件`/xxx.frm`实际丢失,而是由于文件的权限设置不正确导致的。在描述中提到,文件的所有者...
由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是我便在一个夜深人静的夜晚对数据库进行的迁移及前台应用程序进行了调整...
今天,使用mysql workbench 给一张表添加了一列varchar类型的列。在插入中文数据时出现 这是编码问题,只要将表的类型修改为utf-8就ok了。 alter table 数据库名.表名 convert to character set utf8; 执行完这条...
今天有碰到这种情况,数据库中有张表没办法通过migration来更改, migrate时报 django.db.utils.OperationalError: (1050, “Table ‘表名’ already exists)索性就直接把这张表删了重新导. 1 删除数据库中的django_...
在Python编程环境中,有时我们需要与Microsoft SQL Server数据库进行交互,以执行各种数据库操作,如查询、插入、更新或删除数据。在这种情况下,`pymssql`模块是一个非常实用的工具,它为Python提供了连接和操作...
django.db.utils.OperationalError: (1091, "Can't DROP 'email'; check that column/key exists") 所以进数据库把对应的表删除了,想着重新生成这张表. 删除表以后执行: python3 manage.py makemigrations python3 ...
### Django配置详解与常见问题解决方法 #### 一、环境配置 在开发基于Django的Web应用时,首先需要确保开发环境已经正确安装了所需的软件版本。本案例中使用的是Python 3.6、Django 2.1.0以及SQLite 3.8.11。这些...
本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法。分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012。 按照Python版本来选择下载pymssql模块,这样才能连接上sql server。 我安装...
在使用MySQL数据库时,有时会遇到SQL Error (2013)这样的连接错误,提示"Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0"。这个错误通常意味着客户端在尝试与...
针对Python MySQLdb模块使用utf-8编码插入中文数据时遇到的问题,本文将详细介绍如何在Python中设置MySQL数据库和表的UTF-8编码,如何在Python代码中指定连接的字符集,并且讲解在插入数据后确保数据能够正确保存到...
在Python的Web开发框架Django中,与MySQL数据库的整合是一项常见的需求。Django支持多种数据库,包括MySQL,这使得开发者可以根据项目需求选择合适的数据库系统。以下是对标题和描述中涉及知识点的详细说明: 1. **...
Python中的`mysql-connector-python`模块是MySQL数据库与Python编程语言之间的一个桥梁,它使得Python开发者能够方便地连接、操作和管理MySQL数据库。这个模块是由MySQL官方提供的,因此具有较高的可靠性和兼容性。...
MySQL++ 是一个C++库,专门用于与MySQL数据库进行交互,它为C++开发者提供了方便的接口,使得在C++程序中操作MySQL数据库变得更加简单。MySQL++库是基于MySQL的C API构建的,但提供了更高级别的抽象,使得错误处理、...
Socket 通信异常解决总结 Socket 通信异常是指在网络通信过程中出现的各种错误和异常,包括网络连接断开、服务器端或客户端程序异常、网络链路异常等。这些异常会导致 Socket 连接断开,影响系统的稳定性和可靠性。...