若要設定來源以使用以二進制日誌檔案位置為基礎的複製,您必須確保已啟用二進制日誌記錄,並建立唯一的伺服器 ID。
複製拓撲中的每個伺服器都必須設定唯一的伺服器 ID,您可以使用 server_id
系統變數來指定。此伺服器 ID 用於識別複製拓撲中的個別伺服器,而且必須是介於 1 和 (232)−1 之間的正整數。預設的 server_id
值為 1;您可以透過發出如下的陳述式,在執行階段變更此值
SET GLOBAL server_id = 2;
伺服器 ID 的組織和選取是任意的,只要每個伺服器 ID 都與複製拓撲中任何其他伺服器使用的其他伺服器 ID 不同即可。請注意,如果先前為伺服器 ID 設定的值為 0,您必須重新啟動伺服器,才能使用新的非零伺服器 ID 初始化來源。否則,當您變更伺服器 ID 時,不需要重新啟動伺服器,除非您進行其他需要重新啟動的組態變更。
來源上需要二進制日誌記錄,因為二進制日誌是將變更從來源複製到其複本的基礎。預設會啟用二進制日誌記錄(log_bin
系統變數設定為 ON)。--log-bin
選項會告知伺服器要將哪個基本名稱用於二進制日誌檔案。建議您指定此選項,為二進制日誌檔案提供非預設基本名稱,以便在主機名稱變更時,您可以輕鬆地繼續使用相同的二進制日誌檔案名稱(請參閱第 B.3.7 節,〈MySQL 中的已知問題〉)。如果先前在來源上使用 --skip-log-bin
選項停用二進制日誌記錄,您必須在不使用此選項的情況下重新啟動伺服器才能啟用它。
下列選項也會影響來源
為了在使用
InnoDB
搭配交易的複製設定中獲得最大的耐用性和一致性,您應該在來源的my.cnf
檔案中使用innodb_flush_log_at_trx_commit=1
和sync_binlog=1
。確保未在來源上啟用
skip_networking
系統變數。如果已停用網路,複本將無法與來源通訊,且複製會失敗。