【问题标题】:Java how to check if mysql is runningJava如何检查mysql是否正在运行
【发布时间】:2017-11-11 09:15:41
【问题描述】:

我刚刚找到这段代码,我用它每十秒检查一次 MYSQL Server 是否正在运行......通过调用这个方法

public static boolean hostAvailabilityCheck(String address, int port) {
try (Socket s = new Socket(address, port)) {
        return true;
    } catch (IOException ex) {
        /* ignore */
    }
    return false;
}

所以我做对了吗,或者如果几秒钟后仍然运行,还有其他更好的方法来检查 MYSQL?请帮帮我。

【问题讨论】:

  • 请检查一下,有一种方法可以检查mysql是否正在运行click here
  • 使用套接字只会验证指定端口上是否正在运行某些东西,这可能不是 MySQL。

标签: java mysql javafx


【解决方案1】:

端口可以在没有任何应用程序监听的情况下打开。如果您还想查看您的 mySQL 应用程序正在侦听端口,请获取用于 JAVA 的 mySQL 连接器并查看如何建立连接 - 使用用户名和密码。

【讨论】:

  • 那么这意味着如果端口打开了 MYSQL 正在运行?
  • 否 :) 使用 java 的 mysql 驱动程序创建到 mysql 的连接。 google 一下,第一时间就出来了。它也有文档。
【解决方案2】:

我认为与其这样做,不如使用 Hibernate 或其他 ORM 功能来创建数据源和连接池,因为没有它,您将不得不自己处理资源管理。

查看link,了解如何创建和使用 Session 以及相关连接的示例。

Hibernates 使用 c3p0 来处理数据源的创建和连接,您可以使用属性配置所有参数,这将为您处理重新连接以保持连接池可供使用。它还可以通过验证查询来验证连接

【讨论】:

  • 只是说,使用 ORM 来创建一个针对 mysql 的会话对我来说似乎有点矫枉过正:) 你仍然需要 mysql 的驱动程序(它可能包含在你提到的 orm 中)
  • @PeterMajko 确实,但我将其发布为答案也指 c3p0,你可以手动完成这些事情,但如果应用程序是数据库密集型的 CRUD,我们不知道应用程序的确切行为使用 orm 的行为是一个合适的选择,因为它允许他在不自己处理连接的情况下更快地开发。他总是可以使用普通的 JDBC 和 mysql 驱动程序
猜你喜欢
  • 2011-03-29
  • 2022-12-03
  • 2017-10-14
  • 2016-10-21
  • 2016-02-07
  • 1970-01-01
  • 2021-10-27
  • 2017-08-01
  • 1970-01-01
相关资源
最近更新 更多