文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  MySQL 程序  /  Unix 信号处理在 MySQL 中

6.10 Unix 信号处理在 MySQL 中

在 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 信号。可能存在以下变体