文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  MySQL 程序  /  MySQL 中的 Unix 信号处理

6.10 MySQL 中的 Unix 信号处理

在 Unix 和类 Unix 系统上,进程可以接收由 root 系统帐户或拥有该进程的系统帐户发送给它的信号。可以使用 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 节“在 gdb 下调试 mysqld”

客户端对信号的响应

MySQL 客户端程序对信号的响应如下:

  • mysql 客户端将 SIGINT(通常是键入 Control+C 的结果)解释为中断当前语句的指令(如果有),或者取消任何部分输入行(否则)。可以使用 --sigint-ignore 选项禁用此行为,以忽略 SIGINT 信号。

  • 默认情况下,使用 MySQL 客户端库的客户端程序会阻塞 SIGPIPE 信号。以下变体是可能的: