如果我写错了连接信息,我会从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上设置超时。没有运气,代码永远不会停止尝试。
答案 0 :(得分:2)
您可以使用 autoReconnect 属性,如下所示
?autoReconnect=false
我希望它能解决你的问题
答案 1 :(得分:1)
解决方案是添加:socketTimeout = 3000,对于任何想知道的人。感谢@sanket建议使用autoRecconect参数。