要在MySQL中遠程復制數據庫,您需要遵循以下步驟:
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
這將創建一個用戶名為’repl_user’,密碼為’your_password’的用戶,并允許該用戶從任何IP地址進行遠程連接。為了安全起見,建議使用更具體的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監聽所有網絡接口上的連接,并為復制分配一個服務器ID。確保log-bin
設置正確,以便記錄二進制日志。
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
的值,稍后將用于配置復制。
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;
現在,目標服務器應該開始復制源服務器上的數據庫。您可以通過查詢SHOW SLAVE STATUS\G
來檢查復制狀態。如果一切正常,您將在目標服務器上看到與源服務器相同的數據。