如果我写了错误的连接信息,我会从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上设置超时。不走运,代码永远不会停止尝试。
发布于 2014-10-13 18:27:37
您可以使用autoReconnect属性,如下所示
?autoReconnect=false我希望它能解决你的问题
发布于 2014-10-13 19:29:56
对于任何想知道的人来说,解决方案是添加: socketTimeout=3000。感谢@sanket建议的autoRecconect参数。
https://stackoverflow.com/questions/26337667
复制相似问题