Ping MySQL服务器

rqqzpn5f  于 12个月前  发布在  Mysql
关注(0)|答案(4)|浏览(120)

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

hivapdat

hivapdat1#

标准的MySQL JDBC连接器ConnectorJ具有轻量级ping。从文档中:
MySQL Connector/J能够对服务器执行轻量级ping,以验证连接。在负载平衡连接的情况下,这是对所有保留的活动池内部连接执行的。这对于使用连接池的Java应用程序是有益的,因为连接池可以使用此功能来验证连接。
基本上,确保您的“ping”查询以确切文本/* ping */开始。详细信息在上面的链接文档中。这使您可以利用pinging机制,而不是执行(稍微)更重的权重操作。
所以基本上,做查询:

/* ping */ SELECT 1

.将触发ping机制,而不是实际执行SELECT 1的“工作”。

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

k2fxgqgv

k2fxgqgv2#

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

pgx2nnw8

pgx2nnw83#

这取决于您使用什么方法连接到数据库。一些驱动程序,例如MySQL Connector/J确实有一个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就可以正常工作了。

cmssoen2

cmssoen24#

如果你在命令行中,你可以使用

SELECT 'PONG' AS PING

相关问题