我通过play框架和mariadb客户端使用hikari池连接,因为我已经更新了它们(播放2.6.5 - > 2.6.6和mariadb 2.1.1 - > 2.1.2但不确定它是否相关经常我有以下错误:
{{1}}
我发现了一个相关的问题here,并尝试将idleTimeout和maxLifetime更改为2分钟和5分钟,但错误仍然发生。
我正在使用HikariCP 2.7.1,玩2.6.6和mariadb-java-client 2.1.2
答案 0 :(得分:3)
尽管您写道通过更改maxLifetime
值无法成功解决此问题,但我想指出它实际上对我有用。将其值设置为590000
已从我的日志文件中删除了警告。
客户端的maxLifetime
(以毫秒为单位)值应小于MySQL实例的wait_timeout
(以秒为单位)值。这样,客户端将始终在数据库尝试之前终止连接。反之,客户端将尝试对关闭的连接进行操作,您将在日志文件中收到上述警告。
要查看您的MySQL实例的wait_timeout
值,可以使用以下查询:
SHOW VARIABLES like '%timeout%';
MariaDB的默认maxLifetime
值应为28800
,但我注意到600
可以在原位,因为正在加载MySQL配置文件。
我应该注意,除了maximum-pool-size
中的50
之外,我没有其他显式的hikari配置。
顺便说一下,我从https://github.com/brettwooldridge/HikariCP/issues/856得到了灵感。其他非常有用的资源是:https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby和https://mariadb.com/kb/en/library/server-system-variables/#wait_timeout