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

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

通过严密的测试,终于证实存储过程执行两遍是sqlyog的问题。
由于我并非直接连接数据库,而是通过ssh隧道对数据库服务器进行连接,即client --> ssh --> db
由于存储过程执行时间过长,当ssh连接超时时,sqlyog会认为连接失败,从而重新连接,并再次发送存储过程调用语句。此次调试,通过在ssh的目标服务器上用tcpdump抓包分析,论证通过。

2 个解决方案

#1


你的存储过程时在哪儿运行的?

#2


之前出现过这个问题吗

#1


你的存储过程时在哪儿运行的?

#2


之前出现过这个问题吗