文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  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 信號。以下是可能發生的變化