Spec-Zone.ru › MySQL 8.4

6.10 Обработка сигналов Unix в MySQL

В системах Unix и подобных ей, процесс может получать сигналы, отправленные ему системным аккаунтом или аккаунтом, владеющим процессом. Сигналы могут быть отправлены с помощью команды kill. Некоторые интерпретаторы команд связывают определённые последовательности клавиш с сигналами, такие как Control+C для отправки сигнала SIGINT. Этот раздел описывает, как сервер MySQL и клиентские программы реагируют на сигналы.

  • Ответ сервера на сигналы

  • Ответ клиента на сигналы

Ответ сервера на сигналы

mysqld отвечает на сигналы следующим образом:

  • SIGTERM приводит к завершению работы сервера. Это подобно выполнению оператора SHUTDOWN без подключения к серверу (для чего требуется учётная запись с правом SHUTDOWN).

  • SIGHUP приводит к перезагрузке таблиц разрешений и очистке таблиц, логов, кэша потоков и кэша хостов. Эти действия аналогичны различным формам оператора FLUSH. Отправка сигнала позволяет выполнить эти операции без подключения к серверу, что требует MySQL учётной записи с достаточными правами.

  • SIGUSR1 приводит к очистке логов ошибок, общего запроса и медленных запросов. Одно из применений SIGUSR1 — реализация ротации логов без подключения к серверу, что требует MySQL учётной записи с достаточными правами. Сведения о ротации логов см. в Разделе 7.4.6, «Управление серверными логами».

    Ответ сервера на SIGUSR1 является подмножеством ответа на SIGHUP, что позволяет использовать SIGUSR1 как более “лёгкий” сигнал, очищающий определённые логи без других SIGHUP эффектов, таких как очистка кэша потоков и кэша хостов, и без записи отчёта о состоянии в лог ошибок.

  • SIGINT обычно игнорируется сервером. Запуск сервера с опцией --gdb устанавливает обработчик прерываний для SIGINT в целях отладки. См. Раздел 7.9.1.4, «Отладка mysqld в gdb».

Ответ клиента на сигналы

Клиентские программы MySQL реагируют на сигналы следующим образом:

  • Клиент mysql интерпретирует SIGINT (обычно результат нажатия Control+C) как инструкцию прервать текущий оператор, если таковой есть, или отменить любую частичную строку ввода в противном случае. Это поведение можно отключить, используя опцию --sigint-ignore для игнорирования сигналов SIGINT.

  • Клиентские программы, использующие библиотеку MySQL, по умолчанию блокируют сигналы SIGPIPE. Возможны следующие варианты:

    • Клиент может установить свой собственный обработчик SIGPIPE для переопределения стандартного поведения. См. .

    • Клиенты могут предотвратить установку обработчиков SIGPIPE, указав опцию CLIENT_IGNORE_SIGPIPE при подключении. См. .

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/unix-signal-response.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API