如果IP正确,MYSQL永远不会停止尝试连接,但端口或实例是错误的

时间:2014-10-13 10:19:17

标签: java mysql

如果我写错了连接信息,我会从Java和MYSQL中得到一个真正奇怪的行为 比如说正确的连接信息是:

ip: localhost
port: 8889
instance:test

如果我连接这些信息,一切都很好,但如果我将端口号或实例名称更改为无效,代码永远不会停止尝试连接。如果我输入错误的IP,没问题,代码会停止尝试并向我提供错误消息。

这是我的代码:

  try {
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     System.out.println("Driver Loaded.");
     String myUrl = "jdbc:mysql://" + mySqlAdress + ":" + myPort + "/" + sqlInstance +"?connectTimeout=3000";
     conn = DriverManager.getConnection(myUrl, "root", "root");

     System.out.println("Got Connection. " + conn);

 } catch (Exception e) {
 System.out.println("FAILED.");

}

如您所见,我现在正在使用?conncetionTimeOut = 3000进行测试。我已尝试过这两个并在DriverManager上设置超时。没有运气,代码永远不会停止尝试。

2 个答案:

答案 0 :(得分:2)

您可以使用 autoReconnect 属性,如下所示

?autoReconnect=false

我希望它能解决你的问题

答案 1 :(得分:1)

解决方案是添加:socketTimeout = 3000,对于任何想知道的人。感谢@sanket建议使用autoRecconect参数。