Windows 上的 MySQL - 如何设置使用命名管道的连接的 wait_timeout?

Windows 上的 MySQL - 如何设置使用命名管道的连接的 wait_timeout?

我使用在 Windows 系统上运行的 MySQL 数据库,出于性能原因,我使用命名管道连接到它。

使用数据库(通过 Hibernate)的(Java)应用程序可能会让连接空闲很长时间,从而导致连接失败并显示以下消息:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收的最后一个数据包是 33 558 297 毫秒前。向服务器成功发送的最后一个数据包是 33 558 297 毫秒前。比服务器配置的“wait_timeout”值长。您应该考虑在应用程序中使用之前使连接过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用 Connector/J 连接属性“autoReconnect=true”来避免此问题。

autoReconnect不幸的是 没有效果(也没有autoReconnectForPools),但是文档wait_timeout该状态wait_timeout仅适用于“TCP/IP 和 Unix 套接字文件连接,而不适用于通过命名管道或共享内存建立的连接”。

我怎样才能改变wait_timeout命名管道?

答案1

根据您配置数据源的方式,您可能能够指定类似这样的设置idle-timeout-minutes。如果wait_timeout设置为 5 分钟,则设置idle-timeout-minutes为 4。

可以为 MySQL 连接指定的唯一两个超时值是等待超时interactive_timeoutinteractive_timeout. 如果它像客户端一样连接,也可能适用于命名管道。

如果我没记错的话,如果没有指定 wait_timeout 或 interactive_timeout,则默认值为 28800。

相关内容