位置: 编程技术 - 正文

Python中MySQLdb和torndb模块对MySQL的断连问题处理

编辑:rootadmin

推荐整理分享Python中MySQLdb和torndb模块对MySQL的断连问题处理,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在使用python 对wordpress tag 进行细化代码处理时,遇到了调用MySQLdb模块时的出错,由于错误提示和问题原因相差甚远,查看了N久代码也未发现代码有问题。后来问了下师傅,被告知MySQLdb里有一个断接的坑 ,需要进行数据库重连解决。

一、报错代码及提示

运行出错的代码如下:

直接可以执行,在第for循环里第二次调用getTerm函数时,报错如下:

二、解决方法

初始时以为是编码问题了,又细核对了几遍未发现编码有问题,在python代码里也未发现异常。后来问过师傅后,师傅来了句提示:

只看代码有啥用,mysql 的超时时间调长点或捕获异常从连,原因是cursor. connection 没有关闭但是socket已经断了cursor 这个行为不会再建立一次socket的重新执行一次MysqlDB.connect()看的有点懵懂,先从mysql 里查看了所有timeout相关的变量

发现最小的超时时间是s ,而我的程序执行起来显然就不了s 。因为之前查过相关的报错,这里估计这个很可能是另外一个报错:,MySQL server has gone away 。即然和这个超时时间应该没关系,那就尝试通过MySQLdb ping测试,如果捕获异常,就再进行重连,修改后的代码为:

再执行发现竟然OK了,而细看下结果,发现基本上每1-2次getTerm或addTerm函数调用就会打印一次'mysql connect have been close' 。

Python中MySQLdb和torndb模块对MySQL的断连问题处理

三、使用torndb模块解决mysql断连问题1.MySQLdb和torndb的代码样例对比torndb是facebook开源的一个基于MySQLdb二次封装的一个mysql模块,新封装的这个模块比较小,是一个只有2百多行代码的py文件。虽然代码短,功能确相较MySQLdb简便不少,并且该模块由于增加了reconnect方法和max_idel_time参数,解决了mysql的断连问题。比较下使用原生MySQLdb模块和使用torndb模块的代码:使用MySQLdb模块的代码

使用torndb的代码

从两者的代码上来看,使用torndb模块和原生相比,发现可以省略如下两部分:

torndb模块不需要db.cursor进行处理,无不需要db.comment提交,torndb是自动提交的;

torndb不需要在每次调用时,进行db.ping()判断数据库socket连接是否断开,因为torndb增加了reconnect方法,支持自动重连。

2.torndb的方法

torndb提供的参数和方法有:

execute 执行语句不需要返回值的操作。execute_lastrowid 执行后获得表id,一般用于插入后获取返回值。executemany 可以执行批量插入。返回值为第一次请求的表id。executemany_rowcount 批量执行。返回值为第一次请求的表id。get 执行后获取一行数据,返回dict。iter 执行查询后,返回迭代的字段和数据。query 执行后获取多行数据,返回是List。close 关闭max_idle_time 最大连接时间reconnect 关闭后再连接使用示例:

3.报错

在使用过程中可能遇到的错误:

写上面的代码时,我刚开始还是试着使用MySQLdb模块的方式引用数据,结果发现报参数的错误 ,经查看代码发现 ,torndb在使用几个sql方法时较MySQLdb精简过了。具体各个方法的传参方法如下(注意参数个数):

使用Python实现BT种子和磁力链接的相互转换 bt种子文件转换为磁力链接BT种子文件相对磁力链来说存储不方便,而且在网站上存放BT文件容易引起版权纠纷,而磁力链相对来说则风险小一些。而且

尝试使用Python多线程抓取代理服务器IP地址的示例 这里以抓取

使用Python发送各种形式的邮件的方法汇总 我们平时需要使用Python发送各类邮件,这个需求怎么来实现?答案其实很简单,smtplib和email库可以帮忙实现这个需求。smtplib和email的组合可以用来发送

标签: Python中MySQLdb和torndb模块对MySQL的断连问题处理

本文链接地址:https://www.jiuchutong.com/biancheng/378565.html 转载请保留说明!

上一篇:使用Python对IP进行转换的一些操作技巧小结(python ping ip地址)

下一篇:使用Python实现BT种子和磁力链接的相互转换(用python做)

  • 金税四期上线了吗什么时候上线
  • 差旅费津贴怎么报税
  • 边际贡献总额分析法的收入为零
  • 单位参加社保必须全员全额申报吗
  • 分公司能享受小微企业所得税优惠吗
  • 企业其他综合收益减少应该怎么处理
  • 红字信息表跨月撤销有什么影响吗
  • 收到投资款如何写凭证
  • 计提工会经费的贷方账户为
  • 建筑服务预征缴纳税款本期实际抵减税额怎么填
  • 土地股权转让需交什么税
  • 新准则前期差错更正
  • 餐饮店充值
  • 低值易耗品定义出处
  • 融资租赁首付款支付给供应商
  • 事业编制公考
  • 收到增值税专用发票怎么处理
  • 境外企业分红个税怎么交
  • 银行询证函回函是什么意思
  • 个人增值税业务有哪些?
  • 应付职工薪酬月末结转到哪里
  • 工会经费基数是上个月收到的工资还是什么
  • 企业所得税本季度可以弥补上季度亏损吗?
  • 预付款税率是多少
  • 开票金额与实际金额差5元
  • 外币结算方式有哪几种
  • 公司帮别人代缴社保
  • 怎么知道一个公众号有多少人关注
  • 注册资本认缴制开始实施时间
  • 研发费中废料收入怎么处理
  • win7系统中怎么找不到投影仪
  • surface pro记笔记
  • 山茶花的养殖方法盆栽
  • php5.4升级到php7
  • 记账凭证和会计分录的区别
  • thinkphp教程
  • css基础实验报告
  • win11设置项改中文
  • php 弱类型变量是怎么实现的
  • extrim命令详解
  • 股权转让 减资
  • 个人税收收入退税政策
  • dedecms分页标签
  • db2数据库性能调整和优化
  • 作废的增值税普通发票怎么处理
  • 合并报表长投和股本抵消后资产负债表怎么处理
  • 银行主账户和子账户能独立使用吗
  • 食堂购电饭锅账务处理
  • 银行存款利息如何计算
  • 公司聘请专家工资怎么算
  • 出差人员的住宿费计入什么科目
  • 加计抵减10%政策适用范围
  • 免税行业可以开3个点发票吗
  • 生产型企业入库管理办法
  • 年终结账的会计分录
  • 判断一个表是否存在
  • windows server 2003安装域控制器的方法
  • XP系统安装不了QQ
  • 笔记本摄像头摄像
  • 进程cmd.exe
  • centos fio
  • thinkpad笔记本键盘无法输入
  • neotrace.exe - neotrace是什么进程 有什么用
  • win7怎么禁用触摸屏
  • js判断浏览器是否为ie
  • ubuntu搭建安卓环境
  • shell脚本用法
  • node.js javascript
  • 基于贪心算法
  • android应用程序
  • Python中str is not callable问题详解及解决办法
  • windows安装包下载
  • android 加载更多
  • substrate框架原理
  • 辽宁新农合怎么停保
  • 准予扣除外购的应税消费品已纳消费税税款的是
  • 营改增后的工程造价怎么算
  • 餐饮发票怎么看真假
  • 网上订机票怎么取票
  • 大专学费减免多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设