MySQL 主備同步配置是指將一個 MySQL 主服務器的數據同步到備用的 MySQL 服務器上。這是實現高可用性和容災性的有效方式,因為在主服務器發生故障或不可用時,備用服務器能夠自動接管并繼續服務。接下來我們將介紹在 Linux 環境下使用主備同步配置的過程。
首先,必須在主服務器和備用服務器上安裝 MySQL 數據庫。在主服務器數據庫中創建一個新的用戶,授予 SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT 權限。例如:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl_user'@'%';
然后在主服務器執行以下命令:
FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
這將暫停主服務器上的所有寫操作,并顯示主服務器的當前狀態,其中包括二進制日志文件名和文件位置,這些信息在接下來的步驟中將用到。
接下來在備用服務器上執行以下命令,同樣創建一個新用戶:
CREATE USER 'slave_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave_user'@'%';
在備用服務器上通過以下命令連接主服務器:
CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file_name', MASTER_LOG_POS=master_log_position;
其中,MASTER_HOST_NAME 是主服務器的主機名或 IP 地址,master_log_file_name 和 master_log_position 是從 SHOW MASTER STATUS 命令中獲取的信息。
最后,啟動備用服務器的復制進程:
START SLAVE;
現在主服務器和備用服務器已經配置好了主備同步,備用服務器將自動將主服務器上的數據同步到本地。同時,需要注意的是在主服務器上執行 DDL 語句可能會中斷復制進程,因此需要格外小心使用。