文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (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 訊號。以下變化是可能的: