在Linux環境下,使用MySQL復制數據庫可以通過以下步驟實現:
安裝MySQL:確保兩臺Linux服務器上都安裝了MySQL。
配置主服務器:編輯MySQL配置文件/etc/my.cnf
(或/etc/mysql/my.cnf
),在[mysqld]
部分添加以下內容:
server-id=1
log_bin=/var/log/mysql/mysql-bin.log
binlog_do_db=your_database_name # 復制特定數據庫
這里server-id
是服務器的唯一標識,log_bin
指定了二進制日志的文件路徑,binlog_do_db
指定了要復制的數據庫。
創建復制用戶:在主服務器上創建一個用于復制的MySQL用戶,并授權:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
這里的repl
是復制用戶的用戶名,password
是密碼。
獲取主服務器的二進制日志坐標:在主服務器上執行以下命令,獲取當前的二進制日志坐標(文件名和位置):
SHOW MASTER STATUS;
記下返回的File
和Position
值,這些值將用于配置從服務器。
配置從服務器:編輯從服務器的MySQL配置文件/etc/my.cnf
(或/etc/mysql/my.cnf
),在[mysqld]
部分添加以下內容:
server-id=2
relay_log=/var/log/mysql/mysql-relay-bin.log
log_slave_updates=1
read_only=1
這里server-id
是服務器的唯一標識,relay_log
指定了中繼日志的文件路徑,log_slave_updates
啟用從服務器的中繼日志功能,read_only
將復制連接設置為只讀。
啟動從服務器:在從服務器上啟動MySQL服務:
sudo systemctl start mysql
配置從服務器連接主服務器:在從服務器上執行以下命令,配置從服務器連接到主服務器進行復制:
CHANGE MASTER TO
MASTER_HOST='master_server_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_file_name', # 主服務器二進制日志文件名
MASTER_LOG_POS=recorded_position; # 主服務器二進制日志位置
START SLAVE;
這里的master_server_ip
是主服務器的IP地址,recorded_file_name
和recorded_position
是在步驟4中獲取的主服務器的二進制日志坐標。
驗證復制狀態:在從服務器上執行以下命令,查看復制狀態:
SHOW SLAVE STATUS\G;
如果一切正常,你應該能看到Slave_IO_Running
和Slave_SQL_Running
的值都是Yes
,表示復制正在正常運行。
請注意,以上步驟假設你已經有了主服務器和從服務器的IP地址,并且兩臺服務器上的MySQL版本兼容。在實際應用中,你可能需要根據具體情況進行調整。