2017.05.19:MySQL问题

1. “MySQL has Gone Away”

mysql出现ERROR: (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQLserver之间的链接断开了。造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert... values的语句过长

 

原因一. MySQL 服务宕了

判断是否属于这个原因的方法很简单,进入mysql控制台,查看mysql的运行时长

mysql> show global status like 'uptime';

 

原因二. mysql连接超时

即某个mysql长连接很久没有新的请求发起,达到了server端的timeout,被server强行关闭。此后再通过这个connection发起查询的时候,就会报错server has gone away

 

原因三. mysql请求链接进程被主动kill

这种情况和原因二相似,只是一个是人为一个是MYSQL自己的动作

mysql> show global status like 'com_kill';

 

原因四. YourSQL statement was too large.

当查询的结果集超过max_allowed_packet 也会出现这样的报错。定位方法是打出相关报错的语句。用select* into outfile 的方式导出到文件,查看文件大小是否超过max_allowed_packet ,如果超过则需要调整参数,或者优化语句。



2.Python mysqldb 执行execute()时出现InterfaceError:(0,’’)

对任何已经close的conn进行 db相关 操作,包括ping()都会爆出这个错误。(这说明 长时间idle导致的conn失效与conn.close()之后的状态是不一样的)精确catch 这个错误的Exception 是MySQLdb.Error

 

conn.close()写早了,一个py文件里只要有一个close()就够

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值