如何在MySQL JDBC驱动程序上设置连接超时



我正在看到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。

如果connectTimeoutsocketTimeout都没有帮助您,则可以尝试在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;

相关内容

  • 没有找到相关文章

最新更新