如連線量管理中所述,為了允許在用於一般連線的介面上已經建立 max_connections
連線的情況下,仍能執行管理作業,MySQL 伺服器允許具有 CONNECTION_ADMIN
權限(或已棄用的 SUPER
權限)的使用者進行單一管理連線。
伺服器也允許為管理連線專用一個 TCP/IP 連接埠,如下列章節所述。
管理連線介面具有下列特性
只有在啟動時設定
admin_address
系統變數以指示其 IP 位址時,伺服器才會啟用介面。如果未設定admin_address
,伺服器將不會維護管理介面。admin_port
系統變數會指定介面 TCP/IP 連接埠號碼(預設值為 33062)。管理連線的數量沒有限制,但只允許具有
SERVICE_CONNECTION_ADMIN
權限的使用者進行連線。create_admin_listener_thread
系統變數允許 DBA 在啟動時選擇管理介面是否具有自己的獨立執行緒。預設值為OFF
;也就是說,主要介面上一般連線的管理執行緒也會處理管理介面的連線。
伺服器 my.cnf
檔案中的下列行會在本機迴路介面上啟用管理介面,並設定其使用連接埠號碼 33064(也就是說,與預設值不同的連接埠)
[mysqld]
admin_address=127.0.0.1
admin_port=33064
MySQL 用戶端程式藉由指定適當的連線參數,連線至主要或管理介面。如果在本機主機上執行的伺服器使用預設 TCP/IP 連接埠號碼 3306 和 33062 作為主要和管理介面,則下列指令會連線至這些介面
mysql --protocol=TCP --port=3306
mysql --protocol=TCP --port=33062
管理介面具有其自己的加密連線設定參數。這些參數對應於主要介面參數,但允許獨立設定管理介面的加密連線
admin_tls_
和 xxx
admin_ssl_
系統變數與 xxx
tls_
和 xxx
ssl_
系統變數類似,但它們是設定管理介面而非主要介面的 TLS 環境。xxx
如需設定連線加密支援的一般資訊,請參閱第 8.3.1 節「設定 MySQL 使用加密連線」和第 8.3.2 節「加密連線 TLS 協定和密碼」。該討論是針對主要連線介面撰寫的,但管理連線介面的參數名稱類似。請將該討論與以下說明一起使用,以下說明提供了管理介面的特定資訊。
管理介面的 TLS 設定遵循以下規則:
管理介面支援加密連線。對於介面上的連線,適用的 TLS 環境取決於是否已設定任何非預設的管理 TLS 參數。
如果所有管理 TLS 參數都使用其預設值,則管理介面會使用與主要介面相同的 TLS 環境。
如果任何管理 TLS 參數具有非預設值,則管理介面會使用其自身參數定義的 TLS 環境。(如果任何
admin_tls_
或xxx
admin_ssl_
系統變數設定為與其預設值不同的值,則會發生這種情況。)如果無法從這些參數建立有效的 TLS 環境,則管理介面會退回使用主要介面的 TLS 環境。xxx
可以透過將
admin_tls_version
系統變數設定為空值來停用與管理介面的加密連線,以表示不支援任何 TLS 版本。例如,伺服器my.cnf
檔案中的以下幾行會停用管理介面上的加密連線:[mysqld] admin_tls_version=''
範例
伺服器
my.cnf
檔案中的此設定會啟用管理介面,但不設定任何該介面特定的 TLS 參數:[mysqld] admin_address=127.0.0.1
因此,管理介面支援加密連線(因為在啟用管理介面時預設支援加密),並使用主要介面的 TLS 環境。當用戶端連線到管理介面時,應使用與主要介面上一般連線相同的憑證和金鑰檔案。例如(在一行中輸入命令):
mysql --protocol=TCP --port=33062 --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
此伺服器設定會啟用管理介面,並設定該介面特定的 TLS 憑證和金鑰檔案參數:
[mysqld] admin_address=127.0.0.1 admin_ssl_ca=admin-ca.pem admin_ssl_cert=admin-server-cert.pem admin_ssl_key=admin-server-key.pem
因此,管理介面會使用其自身的 TLS 環境支援加密連線。當用戶端連線到管理介面時,應使用該介面特定的憑證和金鑰檔案。例如(在一行中輸入命令):
mysql --protocol=TCP --port=33062 --ssl-ca=admin-ca.pem --ssl-cert=admin-client-cert.pem --ssl-key=admin-client-key.pem