繁体   English   中英

C# MySQL 等待超时

[英]C# MySQL Wait Timeout

我目前正在我的 vs 2017 项目中使用 mysql 连接,我需要检查是否超过了 wait_timeout。 不幸的是,连接的 state 在超时后仍然显示打开。 有没有办法在没有 try catch 的情况下进行检查(在我的情况下,try catch 不会捕获抛出的异常)?

当超过wait_timeout时,MySQL 服务器简单地关闭连接。 没有通知“推送”到客户端,因此连接 state 不会改变; 这只能通过尝试从底层 TCP 套接字读取来检测。 (有关这方面的深入技术文章,请参阅https://github.blog/2020-05-20-three-bugs-in-the-go-mysql-driver/ 。)该连接的任何后续使用通常会引发例外。

有一种方法可以在不抛出异常的情况下测试连接:调用MySqlConnection.Ping 如果连接关闭,它将返回false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM