gpt4 book ai didi

java - 无法连接到MySql数据库

转载 作者:行者123 更新时间:2023-11-29 08:18:46 24 4
gpt4 key购买 nike

过去我的数据库遇到了更多问题:它无法始终获得连接。该数据库在网站(虚拟主机)上运行,我尝试从自己的电脑访问它。这里出了问题,如果我从本地主机访问它到本地主机,那么它就可以正常工作。

我在 Java 中遇到的错误:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许进行任何操作。

我不知道为什么,我一如既往地使用类似的结构,即以下内容:

public class SQL {
private final static String USERNAME = "";
private final static String PASSWORD = "";
private final static String URL = "jdbc:mysql://www.fvheeswijk.nl:3306/p28004_bf4";

private static Connection cachedConnection;

private static void createConnection() {
cachedConnection = null;
Properties connectionProperties = new Properties();
connectionProperties.put("user", USERNAME);
connectionProperties.put("password", PASSWORD);
try {
cachedConnection = (Connection) DriverManager.getConnection(URL, connectionProperties);
} catch (SQLException ex) {
Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
}
}

public static Connection getConnection() {
if (cachedConnection == null) {
createConnection();
}
return cachedConnection;
}
}

数据当然被清空了。

然后我尝试 ping 我的网站,一切正常。

后来我尝试ping数据库www.fvheeswijk.nl:3306,但Windows cmd找不到它。然后我尝试通过浏览器访问它(这有意义吗?),但我收到了一些类似“收到的数据包乱序”的消息。我已经(很早之前)将我的 PC(路由器/网络)主机名添加到数据库允许的主机列表中。

有什么线索或建议出了什么问题吗?

编辑:现在我得到了这个,可能会解释一些东西...java.sql.SQLException:null,来自服务器的消息:“主机'541DB0AA.cm-5-6c。由于许多连接错误,dynamic.ziggo.nl' 被阻止;使用 'mysqladminlush-hosts' 解除阻止"

最佳答案

主要问题是您打开了太多连接,并且可能从未关闭它们,或者它们被应用程序服务器(或运行此应用程序的任何地方)关闭。这可以从您帖子中的两个事实得知:

  • 私有(private)静态连接cachedConnection。数据库连接不得手动缓存,而应在需要时检索,并在使用后关闭
  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许进行任何操作。此错误非常明确,您正在尝试使用已关闭的连接。

此外,您天真地手动打开连接,此处注明:

cachedConnection = (Connection) DriverManager.getConnection(URL, connectionProperties);

要解决所有这些问题,您应该转向 database connection pool 。简而言之,连接池会打开一堆物理数据库连接并让它们处于 sleep 状态并保持 Activity 状态,并且会按需唤醒一个连接,然后在关闭连接时,不会关闭物理连接,而是会回到原来的状态。 sleep 状态,从而节省打开新连接的时间。

更多信息:

<小时/>

关于您上次的编辑,似乎您需要关闭一些与数据库的连接。你应该kill some of them并尝试使用数据库池再次连接。

关于java - 无法连接到MySql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com