採用 GTID 前的傳統基於位點複製,適合快速驗證、測試環境。核心 4 步:主庫開 binlog、從庫設 server-id、建復制用戶、CHANGE MASTER TO 指定同步點。
my.cnf[mysqld]
server-id=1
log-bin=/home/china/mysql/mysql-bin
重啟:service mysql restart
my.cnf[mysqld]
server-id=2
重啟。
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
SHOW MASTER STATUS; 記錄 File、Position。CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=397;
START SLAVE;SHOW SLAVE STATUS\G 確認 Slave_IO_Running: Yes、Slave_SQL_Running: Yes。-- 主庫
CREATE DATABASE test;
USE test;
CREATE TABLE t (id INT);
INSERT INTO t VALUES (1);
-- 從庫
USE test;
SELECT * FROM t; -- 應返回 1
原因:主從數據不一致(如從庫手動改過數據、或重新搭建未同步位點)。
修復步驟:
STOP SLAVE;FLUSH LOGS; 產生新 binlog。SHOW MASTER STATUS; 取新 File、Position。CHANGE MASTER TO MASTER_LOG_FILE='...', MASTER_LOG_POS=...;START SLAVE;gtid_mode=ON),自動定位同步點,運維更簡單。Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 三大核心指標。read_only=1 防誤寫入。