Ping 一个 MySQL 服务器

2022-09-02 19:36:04

Java中是否有特定的方法来检查MySQL服务器是否处于活动状态?


答案 1

标准的MySQL JDBC连接器ConnectionJ具有轻量级ping。从文档中

MySQL Connector/J能够对服务器执行轻量级ping,以验证连接。对于负载平衡连接,将对保留的所有活动池内部连接执行此操作。这对于使用连接池的 Java 应用程序很有帮助,因为池可以使用此功能来验证连接。

基本上,请确保您的“ping”查询完全以文本开头。详细信息在上面的链接文档中。这使您可以利用ping机制,而不是执行(略微)较重的权重操作。/* ping */

所以基本上,做查询:

/* ping */ SELECT 1

...将触发 ping 机制,而不是实际执行 .SELECT 1

请注意,如果您正在谈论检查当前未连接的MySQL服务器,只需连接到它的行为即可验证它是否存在并做出响应。以上主要是关于检查现有连接是否仍然有效。


答案 2

假设您在 Java 6 或更高版本中运行,则可以使用标准的 JDBC 方法 Connection.isValid(int timeoutInSecs)。深入研究MySQL Connector/J源代码,实际实现使用com.mysql.jdbc.ConnectionImpl.pingInternal()向数据库发送一个简单的ping数据包,只要返回有效响应,就会返回true。


推荐