mysql运行存储过程自己运行了两次是什么原因

74w20 2017-04-12 05:02:03
从记的日志来看是已经走到最后一步了,但是并没有退出这个存储过程继续走后面的步骤,直到2小时后又把这个存储过程运行了一次,由于表结构变化导致运行失败才继续往后走了。真的想不通啊。网上查了有人遇到相同的情况说是执行时间过长导致超时。从日志来看走到最后一步只用了40分钟左右,剩下的80分钟是停在那了,从show full processlist里面都看不到有正在运行的语句。
下面是别人说的情况。

通过严密的测试,终于证实存储过程执行两遍是sqlyog的问题。
由于我并非直接连接数据库,而是通过ssh隧道对数据库服务器进行连接,即client --> ssh --> db
由于存储过程执行时间过长,当ssh连接超时时,sqlyog会认为连接失败,从而重新连接,并再次发送存储过程调用语句。此次调试,通过在ssh的目标服务器上用tcpdump抓包分析,论证通过。
...全文
455 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2017-04-17
  • 打赏
  • 举报
回复
之前出现过这个问题吗
LongRui888 2017-04-17
  • 打赏
  • 举报
回复
你的存储过程时在哪儿运行的?

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧