Назад | Перейти на главную страницу

Получите mysql, чтобы блокировать все новые соединения, но уважать существующие при подготовке к отключению

Я ищу способ заставить MySQL (на самом деле MariaDB) блокировать все новые соединения, но уважать существующие. Я намерен ввести это ограничение, прежде чем отключать сервер для обслуживания. Я представляю себе этот процесс следующим образом:

  1. Блокировать новые подключения
  2. Дождитесь завершения всех существующих подключений
  3. Есть способ проверить, что все они готовы
  4. Снять сервер
  5. Выполнить техническое обслуживание
  6. Восстановить сервер

Я думаю, что, возможно, это можно сделать с max_connections но мне все равно нужно иметь возможность подключиться, чтобы определить, что все процессы завершены. Или вы можете изменить IP-адреса, которые сервер будет слушать без перезагрузки? Или, может быть, это можно сделать, заблокировав пользователя, но это кластер, реплицированный с помощью Galera, поэтому я бы хотел, чтобы это повлияло только на один узел.

Спасибо за вашу помощь.

Было бы проще изменить IP-адрес от балансировщика нагрузки - полное состояние соединений будет завершено, а новые будут просто перенаправлены на другой сервер MySQL. Если вы не видите больше подключений на сервере MySQl, которые необходимо поддерживать, измените IP-адрес, перезапустите сервер, снова добавьте сервер в HA. Пожалуйста, проверьте это, так как это решение действительно зависит от окружающей среды.