我正在寻找一种方法让 MySQL(实际上是 MariaDB)阻止所有新连接但尊重现有连接。我打算在关闭服务器进行维护之前实施此限制。我设想的过程如下:
- 阻止新连接
- 等待所有现有连接完成
- 有办法检查它们是否都完成了
- 关闭服务器
- 执行维护
- 恢复服务器
我在想也许可以做到这一点,max_connections
但我仍然需要能够连接以确定所有进程都已完成。或者您可以在不重新启动的情况下更改服务器将侦听的 IP?或者也许可以通过阻止用户来完成,但这是使用 Galera 进行集群复制的,所以我只希望这会影响单个节点。
感谢您的帮助。
答案1
更改从负载均衡器获取的 IP 会更容易 - 状态完整连接将完成,新连接将重定向到其他 MySQL 服务器。当您在 MySQl 服务器上看不到任何必须维护的连接时,更改 IP,重新启动服务器,将服务器重新添加到 HA。请检查这一点,因为此解决方案确实取决于环境