我正在看到JDBC MySQL驱动程序一致失败连接尝试在10秒后停止MySQL,但我想更改该超时。
我尝试添加?connectTimeOut = 2000& sockettimeout = 2000与连接URI,但这没有区别。
有没有办法自定义驾驶员在连接到mysql时返回超时需要多长时间?
我尝试添加?connectTimeOut = 2000& sockettimeout = 2000与连接URI,但这没有区别。
这正是其配置的方式,例如
jdbc:mysql://aaa.bbb.ccc.rds.amazonaws.com:1234/hello?connectTimeout=5000&socketTimeout=30000
请参阅https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html。
如果connectTimeout
或socketTimeout
都没有帮助您,则可以尝试在URL中将MAX_EXECUTION_TIME
添加到sessionVariables
:
jdbc:mysql://{host}:{port}/{database}?sessionVariables=MAX_EXECUTION_TIME=123456666
查询要验证:
SELECT @@max_execution_time
预期输出:
+--------------------+
|@@max_execution_time|
+--------------------+
| 123456666 |
+--------------------+
在调用getConnection之前添加此此事。
...
DriverManager.setLoginTimeout(2);
DriverManager.getConnection(connectString);
...
在我的情况下工作。
您可以使用以下方式设置连接超时:
con.query('SET GLOBAL connect_timeout=2000')
con.query('SET GLOBAL wait_timeout=2000')
con.query('SET GLOBAL interactive_timeout=2000')
有关更多帮助,请参阅MySQLConnection
您可以更改MySQL配置文件中的默认值(MySQLD中的Connect timeout选项) -
[mysqld]
connect-timeout=100
如果您无法访问此文件,则可以使用此语句 -
设置此值SET GLOBAL connect_timeout=100;