Java中有没有特定的方法来检查MySQL服务器是否处于活动状态?
hivapdat1#
标准的MySQL JDBC连接器ConnectorJ具有轻量级ping。从文档中:MySQL Connector/J能够对服务器执行轻量级ping,以验证连接。在负载平衡连接的情况下,这是对所有保留的活动池内部连接执行的。这对于使用连接池的Java应用程序是有益的,因为连接池可以使用此功能来验证连接。基本上,确保您的“ping”查询以确切文本/* ping */开始。详细信息在上面的链接文档中。这使您可以利用pinging机制,而不是执行(稍微)更重的权重操作。所以基本上,做查询:
/* ping */
/* ping */ SELECT 1
.将触发ping机制,而不是实际执行SELECT 1的“工作”。
SELECT 1
请注意,如果您正在谈论检查当前未连接到的MySQL服务器,则只需连接到它即可验证它是否存在并响应。以上主要是关于检查一个 * 现有的 * 连接仍然有效。
k2fxgqgv2#
假设您运行的是Java 6或更高版本,您可以使用标准JDBC方法Connection.isValid(inttimeoutInSecs)。深入了解MySQL Connector/J源代码,实际的实现使用com.mysql.jdbc.ConnectionImpl.pingInternal()向DB发送一个简单的ping包,只要返回有效的响应,就返回true。
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;
如果你的接口不支持这个,那么一个简单的方法总是有效的,那就是像平常一样连接到数据库,然后执行下面的查询:
你应该得到一个结果集,包含一行,一列,值为1。如果成功了,MySQL就可以正常工作了。
cmssoen24#
如果你在命令行中,你可以使用
SELECT 'PONG' AS PING
4条答案
按热度按时间hivapdat1#
标准的MySQL JDBC连接器ConnectorJ具有轻量级ping。从文档中:
MySQL Connector/J能够对服务器执行轻量级ping,以验证连接。在负载平衡连接的情况下,这是对所有保留的活动池内部连接执行的。这对于使用连接池的Java应用程序是有益的,因为连接池可以使用此功能来验证连接。
基本上,确保您的“ping”查询以确切文本
/* ping */
开始。详细信息在上面的链接文档中。这使您可以利用pinging机制,而不是执行(稍微)更重的权重操作。所以基本上,做查询:
.将触发ping机制,而不是实际执行
SELECT 1
的“工作”。请注意,如果您正在谈论检查当前未连接到的MySQL服务器,则只需连接到它即可验证它是否存在并响应。以上主要是关于检查一个 * 现有的 * 连接仍然有效。
k2fxgqgv2#
假设您运行的是Java 6或更高版本,您可以使用标准JDBC方法Connection.isValid(inttimeoutInSecs)。深入了解MySQL Connector/J源代码,实际的实现使用com.mysql.jdbc.ConnectionImpl.pingInternal()向DB发送一个简单的ping包,只要返回有效的响应,就返回true。
pgx2nnw83#
这取决于您使用什么方法连接到数据库。一些驱动程序,例如MySQL Connector/J确实有一个ping命令:
如果你的接口不支持这个,那么一个简单的方法总是有效的,那就是像平常一样连接到数据库,然后执行下面的查询:
你应该得到一个结果集,包含一行,一列,值为1。如果成功了,MySQL就可以正常工作了。
cmssoen24#
如果你在命令行中,你可以使用