服务器断网事务未提交导致MYSQL锁表问题(ADSL拨号上网)

服务器使用ADSL拨号上网,因网络中断导致MySQL事务未提交,进而造成锁表。问题源于自5.5版本后MySQL的特性,断网并不自动回滚事务。为解决此问题,可以通过获取并kill事务的TRX_MYSQL_THREAD_ID来释放锁。寻求更优解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境描述:

由于特殊原因服务器的网络是电信ADSL拨号上网的,用"自动切换IP精灵"进行自动断网重连,每次重新连上网络需要2s时间,设置2小时切换一次网络。

        MYSQL数据库在远程一台服务器上,另有一台测试数据库(MYSQL,也是ADSL拨号)。

发现程序部署上去后,总会莫名的锁表,而连接测试数据库则没有问题。加入详细日志后发现是因为开启事务后,在程序更新多张表期间,“自动切换IP精灵”切换网络导致网络中断,事务未提交导致锁表! 那为什么测试数据库没有问题?

        后来发现线上MYSQL版本是5.7.14,测试数据库版本是5.0.27,查找数据库版本更新资料发现:自5.5以后,其中有一条新增功能是 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值