Khi bạn ngắt kết nối vật lý với một ứng dụng khách, bạn sẽ không gửi một ngắt kết nối bình thường (điều này có thể gây ra sự cố khôi phục) và giao thức MySQL không phải là trò chuyện nhiều nên máy chủ không bao giờ biết rằng ứng dụng khách không có ở đó. Tôi nghĩ rằng đây là một lỗ hổng trong giao thức khi so sánh với các hệ thống cơ sở dữ liệu khác, nơi máy khách và máy chủ nói chuyện nội bộ nhiều hơn.
Dù sao thì. Có hai biến mà bạn có thể thay đổi. Về cơ bản, chúng thực hiện giống nhau nhưng đối với các khách hàng khác nhau.
Đầu tiên là wait_timeout và nó được sử dụng bởi các ứng dụng khách như java hoặc php.
Cái kia là tương tác_timeout và nó được ứng dụng khách mysql sử dụng (như trong các thử nghiệm của bạn)
Trong cả hai trường hợp, máy chủ ngắt kết nối sau một vài giây và khi làm như vậy sẽ khôi phục tất cả các giao dịch và giải phóng tất cả các khóa.