下載本手冊
PDF (美式信紙) - 2.3Mb
PDF (A4) - 2.3Mb


MySQL Shell 9.0  /  ...  /  配置 InnoDB 叢集埠

7.4.5 配置 InnoDB 叢集埠

屬於叢集的執行個體會使用不同的埠進行不同類型的通訊。如果您使用 XCOM 通訊堆疊,除了預設的 port (3306,用於透過傳統 MySQL 通訊協定的用戶端連線) 和 mysqlx_port (預設為 33060,用於 X 通訊協定用戶端連線) 之外,叢集中執行個體之間的內部連線也需要一個埠,此埠不適用於用戶端連線。此埠由 localAddress 選項配置,此選項會配置 group_replication_local_address 系統變數,而且此埠必須開啟,叢集中的執行個體才能彼此通訊。例如,如果您的防火牆封鎖此埠,執行個體將無法彼此通訊,且叢集無法運作。同樣地,如果您的執行個體使用 SELinux,您需要確保 InnoDB 叢集使用的所有必要埠都已開啟,執行個體才能彼此通訊。請參閱設定 MySQL 功能的 TCP 埠內容MySQL Shell 埠

當您建立叢集或將執行個體新增至叢集時,預設會將目標執行個體的 port 值乘以 10,然後將結果加一,以計算 localAddress 埠。例如,當目標執行個體的 port 為預設值 3306 時,計算出的 localAddress 埠為 33061。您應確保叢集執行個體使用的埠號與 localAddress 的計算方式相容。例如,如果用於建立叢集的伺服器執行個體的 port 號碼高於 6553,則 dba.createCluster() 作業會失敗,因為計算出的 localAddress 埠號超過最大有效埠 65535。若要避免這種情況,請在您用於 InnoDB 叢集的執行個體上使用較低的 port 值,或手動指派 localAddress 值,例如

mysql-js> dba.createCluster('testCluster', {'localAddress':'icadmin@ic-1:33061'}

如果您使用 MYSQL 通訊堆疊,則 localAddress 值會使用與 MySQL 伺服器相同的網路位址自動產生。不需要額外的內部埠/位址。請參閱第 7.5.9 節「配置群組複寫通訊堆疊」

localAddress 可以手動定義,但使用的埠必須是 MySQL 正在接聽的埠,如 bind_address 所定義。