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

Edy*_*rne 6 java mysql timeout jdbc connection-timeout

我看到 JDBC MySQL 驱动程序在 10 秒后始​​终无法连接到已停止的 MySQL,但我想更改该超时。

我尝试将 ?connectTimeout=2000&socketTimeout=2000 添加到连接 URI,但这并没有什么区别。

有没有办法自定义驱动程序在连接到 MySQL 时返回超时所需的时间?

Adr*_*ker 11

我尝试将 ?connectTimeout=2000&socketTimeout=2000 添加到连接 URI,但这并没有什么区别。

这正是它的配置方式,例如

jdbc:mysql://aaa.bbb.ccc.rds.amazonaws.com:1234/hello?connectTimeout=5000&socketTimeout=30000
Run Code Online (Sandbox Code Playgroud)

请参阅https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html


Ben*_*n H 6

如果两者都没有connectTimeoutsocketTimeout对您有帮助,您可以尝试在 URL 中MAX_EXECUTION_TIME添加:sessionVariables

jdbc:mysql://{host}:{port}/{database}?sessionVariables=MAX_EXECUTION_TIME=123456666
Run Code Online (Sandbox Code Playgroud)

查询验证:

SELECT @@max_execution_time
Run Code Online (Sandbox Code Playgroud)

预期输出:

+--------------------+ 
|@@max_execution_time| 
+--------------------+ 
| 123456666          | 
+--------------------+
Run Code Online (Sandbox Code Playgroud)