• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

解决python连接数据库报错pymysql.err.OperationalError: (2013, ‘Lost connection to MySQL server during query’)

武飞扬头像
qq_41845402
帮助1

解决python连接数据库报错:pymysql.err.OperationalError: (2013, ‘Lost connection to MySQL server during query’)

原因定位:在项目实践过程中,发现当查询语句比较复杂时,sql语句过长时,会出现mysql断开连接的情况

尝试解决方案:当connect断开后,重新进行连接。ping(reconnect=True)

def execute(self, dql):
        """执行数据库查询语句"""
        while True:
            try:
                self.__cursor.execute(dql)
            except Exception:
                self.db.ping(True)
            return self

def execute_operate(self, dql):
    """执行数据库插入或删除语句"""
    while True:
        try:
            self.__cursor.execute(dql)
            self.db.commit()
        except Exception:
            self.db.ping(True)
        return self

学新通

在封装的数据库操作方法中,增加循环尝试,如果出现断开则重连。再次运行代码后没有报错,成功解决问题。

知识汇总:

Connection中常用Api
1、open()检测数据库是否连接,connect.open如果数据库连接返回True,否则返回False
2、ping(reconnect=True) ,connect.ping(reconnect=True),如果reconnect=True表示断开后,重新进行连接
3、rollback(),回滚当前事务
4、select_db(db),切换数据库
5、cursor(),创建游标对象,用于操作数据(增、删、改、查)
6、commit(),提交请求,当向数据库中插入数据时,需要使用commit()进行提交,否则数据不能写入数据库
7、close(),关闭数据库连接

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgghaje
系列文章
更多 icon
同类精品
更多 icon
继续加载