崩溃时mysql事务超时和连接心跳

标签 mysql crash

我的问题是:假设进程A有一个mysql客户端并启动一个事务。在process-A提交或回滚之前,会导致OOM或net-wire被某人掐断。 mysql服务器会如何处理(在上述两种情况下)?

我知道innodb引擎上的默认事务超时是50秒,并且mysql客户端这里有一个连接池。我猜连接池有自己的心跳,如果没有收到心跳,mysql服务器会认为客户端已关闭。

你能告诉我,到底会发生什么并给出引用吗?版本是10.1.29-MariaDB-6ubuntu2 Ubuntu 18.10

谢谢。 :)

最佳答案

让我自己来回答这个问题。看看net_read_timeout ,默认有30秒时间,服务器认为客户端关闭,并取消交易。对我来说,通过使用 go-sql-driver,建议setup this variable如果需要自定义,则打开数据库客户端时。

我仍然不知道服务器-客户端协议(protocol)的细节,是否有心跳或只是TCP保持事件?等待更多的潜水。

关于崩溃时mysql事务超时和连接心跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57504465/

相关文章:

PHP MySQL 获取结果以及表的列名

properties - NSStringto 类成员分配崩溃

c++ - 类和 Windows DC (C++) 中的奇怪数组行为?

iphone - 苹果拒绝了我,不知道为什么,也不知道如何解决

mysql - 在 MySql 数据库的 Entity Framework 中运行更新数据库时表 'xxx.__MigrationHistory' 不存在错误

php - 如何实时显示链接计数器的变化?

mysql - Node js mysql是否需要apache

mysql - OpenStreetMaps MySQL 数据库。检索 POI 和街道名称

android-studio - 为什么我的应用程序在我的代码没有任何错误后崩溃?

ios - 从Xcode 10和iOS 12开始的Fabric Answer崩溃iOS应用