会话变量不同于 MariaDB 中的全局变量

Session Variables different to global Variables in MariaDB

我是 运行 前面有一个 HAProxy-LB 的 Galera 集群。 但是我的用户报告会话变量 wait_timeout 设置为 60.

我用 SHOW SESSION VARIABLES LIKE "%wait_timeout%" 对我来说,结果是 wait_timeout 610.

在我的 /etc/mysql/my.cnf 中(在每个集群节点上)设置了值“28800”(默认) 我可以确认这是被 运行 使用的: SHOW GLOBAL VARIABLES LIKE "%wait_timeout%" 结果是 wait_timeout 28800

知道为什么这不适用于新会话吗? HAProxy 是 afaik 端口 3306 上的一个愚蠢的转发器..

编辑:更新了所有集群节点上的所有包。还是一样的问题。 我什至尝试用 root 的 mysql 套接字连接检查它,并且新会话产生 wait_timeout 值为 60。

通常 SESSION VARIABLES 初始化GLOBAL 建立连接时的设置.之后,可以更改任一 组设置。

然而,wait_timeout 尤其棘手。不仅有SESSIONGLOBAL,还有interactive和batch。此外,InnoDB 具有类似的值。

610 是一个不寻常的值。一定是某些人或某些程序更改了它。

您是否达到了意外的极限?

可以使用“ping”来保持连接。

您可以检查连接是否已断开,然后重新启动它。

请为您的案例提供更多细节。

我发现了问题。 在不同的配置中(一些管理员在 /etc/mysql/conf.d/finetuning.cnf 下为“微调”做了一个单独的配置)是一个名为 interactive_timeout 的变量,它被设置为 60。这似乎是将 wait_timeout 的会话变量设置为 60 而不是使用全局变量中的 wait_timeout (28800)。 注释掉 interactive_timeout 解决了我的问题。