文档章节

处理MySql连接超时引起的错误

好铁
 好铁
发布于 2017/04/13 18:23
字数 247
阅读 1421
收藏 1

项目使用tornado作web框架,使用sqlalchemy作为orm框架.

错误a:

OperationalError: 
(_mysql_exceptions.OperationalError) (2006, 'MySQL server has gone away')

错误b:

StatementError: 
(sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back

 

错误a是因为mysql的连接到达了wait_timeout, 使用超时的连接就会报错gone away, 

错误b是因为连接断开后,事务没有回滚,残留的锁导致后续的查询报错.

 

解决方案一:打开autocommit

sqlalchemy打开autocommit后, 就会停止使用事务,生成的查询语句立即执行, 防止了错误b. 

 

解决方案二:

在所有访问数据库的地方加异常捕获,报异常时rollback

 

参考:

http://docs.sqlalchemy.org/en/latest/core/pooling.html#sqlalchemy.pool._ConnectionRecord

https://groups.google.com/forum/#!topic/sqlalchemy/qAMe78TV0M0

 

© 著作权归作者所有

共有 人打赏支持
好铁
粉丝 35
博文 266
码字总数 78672
作品 0
朝阳
程序员
私信 提问
MySQL 状态变量 Aborted_connects 与 Aborted_clients 浅析

原文出处:潇湘隐者 关于MySQL的状态变量Abortedclients & Abortedconnects分别代表的意义,以及哪些情况或因素会导致这些状态变量变化呢?下文通过实验测试来验证一下,首先我们来看看状态变...

潇湘隐者
2018/06/24
0
0
程序连不上数据库的总结

连不上mysql时一般有以下四种报错: 1:Can't connect to MySQL server 2:Lost connection to MySQL server 3:Sorry, due to line fault, temporarily unable to browse, we are dealing with......

emma_cql
2017/08/24
0
0
MySQL · 答疑解惑 · MySQL 的那些网络超时错误

前言 我们在使用/运维 MySQL 过程中,经常会遇到一些网络相关的错误,比如: MySQL 的网络超时相关参数有好几个,这个超时到底是对应哪个参数呢? 在之前的月报中,我们介绍过 MySQL 的 网络...

阿里云RDS-数据库内核组
2017/05/05
0
0
解决MySQL 5数据库连接超时问题

最近碰到一个mysql5数据库的问题。就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库。问题是待机一晚上后,第二天早上第一次登录总是失败。察看日志发现如下错误: “com.mysql.j...

Jesons
2015/01/12
0
2
线上数据库增加字段导致服务请求超时总结

今天的一个需求上线需要在数据库的某个表中增加一个字段。这个数据库是服务中一个业务量比较少的数据库,与主要业务的数据库是隔离的。执行增加操作后生效比较慢,没有关注,过了一段时间收到...

wangtx
2018/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux在线安装JDK(1.8版本)

linux在线安装JDK(1.8版本) 2018年07月03日 15:36:27 唯爱酒神 阅读数:806 标签: linux jdk安装 jdk安装 更多 个人分类: linux 在线下载JDK 命令: wget --no-check-certificate --no-c...

rootliu
24分钟前
0
0
移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

FreeModbus是Modbus的一个被广泛移植的实现。其源码在github,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对一些功能比如异常诊断和读事件计数等功能码并没有...

Konstantine
今天
3
0
浅谈神经网络(神经网络篇)

背景 之前写过浅谈神经网络基础篇,简单介绍下机器学习这块内容,用于扫盲。本文正式将神经网络,这部分是深度学习的基础。了解完可以掌握强大的机器学习的方法,也可以更好的了解深度学习。...

Uknowzheng
今天
5
0
移动硬盘变为RAW格式后的修复

在Mac上使用自己的移动硬盘结果文件系统格式变为RAW; 在自己windows笔记本上使用chkdsk H: /F进行修复,修复日志如下: C:\Users\mengzhang6>chkdsk H: /F文件系统的类型是 NTFS。卷标是 do...

晨猫
今天
4
0
10 Git —— 标签管理

10 Git —— 标签管理 本节内容: 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git......

lwenhao
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部