要在MySQL中遠(yuǎn)程復(fù)制數(shù)據(jù)庫(kù),您需要遵循以下步驟:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
這將創(chuàng)建一個(gè)用戶名為’repl_user’,密碼為’your_password’的用戶,并允許該用戶從任何IP地址進(jìn)行遠(yuǎn)程連接。為了安全起見(jiàn),建議使用更具體的IP地址范圍。
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
CREATE DATABASE your_target_database;
/etc/mysql/my.cnf
或/etc/my.cnf
),在[mysqld]
部分添加以下行:bind-address = 0.0.0.0
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
這將使MySQL監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口上的連接,并為復(fù)制分配一個(gè)服務(wù)器ID。確保log-bin
設(shè)置正確,以便記錄二進(jìn)制日志。
sudo systemctl restart mysql
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON your_target_database.* TO 'repl_user'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
記下File
和Position
的值,稍后將用于配置復(fù)制。
source_file
和source_position
替換為上一步中獲取的值:CHANGE MASTER TO
MASTER_HOST='source_server_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='source_file',
MASTER_LOG_POS=source_position;
START SLAVE;
現(xiàn)在,目標(biāo)服務(wù)器應(yīng)該開(kāi)始復(fù)制源服務(wù)器上的數(shù)據(jù)庫(kù)。您可以通過(guò)查詢SHOW SLAVE STATUS\G
來(lái)檢查復(fù)制狀態(tài)。如果一切正常,您將在目標(biāo)服務(wù)器上看到與源服務(wù)器相同的數(shù)據(jù)。