Java Ping MySQL服务器

Java Ping MySQL服务器,java,mysql,Java,Mysql,Java中是否有特定的方法检查MySQL服务器是否处于活动状态?这取决于您使用什么方法连接数据库。某些驱动程序(例如)具有ping命令: /** * Detect if the connection is still good by sending a ping command * to the server. * * @throws SQLException * if the ping fails */ public abstract void ping() thro

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

这取决于您使用什么方法连接数据库。某些驱动程序(例如)具有ping命令:

/**
* Detect if the connection is still good by sending a ping command
* to the server.
* 
* @throws SQLException
*             if the ping fails
*/
public abstract void ping() throws SQLException;
如果您需要一个不支持此功能的接口,那么一个始终有效的简单方法是像平常一样连接到数据库并执行以下查询:

SELECT 1

您应该返回一个结果集,该结果集包含一行和一列,其中包含值1。如果成功,您的MySQL将正常工作。

标准MySQL JDBC连接器ConnectorJ具有轻量级ping。发件人:

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

基本上,确保您的“ping”查询以文本
/*ping*/
开始。详情请参阅。这使您可以利用ping机制,而不是执行(稍微)加重的操作

因此,基本上,进行查询:

/* ping */ SELECT 1
…将触发ping机制,而不是实际执行
选择1的“工作”


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

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