mysql 切换 tidb 后,java 应用总是告警

java应用连接tidb数据库总是报警,请问这个需要调整tidb什么参数?

wait_timeout,interactive_timeout和之前mysql设置的一致吗

一样的,这个没有改动过

参考这里看看,应该是这里的wait_timeout的问题。
https://docs.pingcap.com/zh/tidb/stable/java-app-best-practices#超时参数

看上去,这里是一个类似的案例。

设置你的 maxlifetime 参数小于你的的网络超时时间

试了不行啊

这个设置成了30000也不行

网络上中间过什么负载均衡啥了吗,直接连 tidb 试试?

1 个赞

加了一个haproxy

haproxy的配置文件里也有超时参数配置,检查一下。

1 个赞

TiDB默认的wait_timeout和interactive_timeout较短,可以适当增加这些值以减少因超时导致的连接关闭,顺便确认JDBC URL中的连接超时参数(如connectTimeout、socketTimeout等)是否合理

可能是haproxy问题,使用tidb官方的配置文件改下
HAProxy 在 TiDB 中的最佳实践 | TiDB 文档中心

超时部分参考:
timeout connect 2s # HAProxy 与后端服务器连接超时时间。如果在同一个局域网内,可设置成较短的时间。
timeout client 30000s # 客户端与 HAProxy 连接后,数据传输完毕,即非活动连接的超时时间。
timeout server 30000s # 服务器端非活动连接的超时时间。

绕过 haproxy 直接连 tidb 测试下

感觉感谢,已解决问题了

改了一下haproxy的连接时间

感谢感谢,好了

感谢感谢

:handshake: :handshake: :handshake: