4.10 MySQL 中的 Unixsignal 处理

在 Unix 和类似 Unix 的系统上,进程可以是root或拥有该进程的帐户发送给它的 signal 的接收者。可以使用kill命令发送 signal。一些命令解释器将某些键序列与 signal 相关联,例如 Control C 以发送SIGINTsignal。本节介绍 MySQL 服务器和 Client 端程序如何响应 signal。

服务器对 signal 的响应

mysqld对 signal 的响应如下:

  • SIGTERM导致服务器关闭。这就像执行SHUTDOWN语句而不必连接到服务器一样(要关闭服务器,该帐户需要具有SHUTDOWN特权的帐户)。

  • SIGHUP使服务器重新加载授权 table,并刷新 table,日志,线程缓存和主机缓存。这些动作类似于FLUSH语句的各种形式。服务器还将具有以下格式的状态报告写入错误日志:

Status information:

Current dir: /var/mysql/data/
Running threads: 0  Stack size: 196608
Current locks:

Key caches:
default
Buffer_size:       8388600
Block_size:           1024
Division_limit:        100
Age_limit:             300
blocks used:             0
not flushed:             0
w_requests:              0
writes:                  0
r_requests:              0
reads:                   0

handler status:
read_key:            0
read_next:           0
read_rnd             0
read_first:          1
write:               0
delete               0
update:              0

Table status:
Opened tables:          5
Open tables:            0
Open files:             7
Open streams:           0

Alarm status:
Active alarms:   1
Max used alarms: 2
Next alarm time: 67

Client 对 signal 的回应

MySQLClient 端程序对 signal 的响应如下: