如連線容量管理中所述,為了允許在用於一般連線的介面上已經建立 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