MySQL 主从复制搭建与故障切换(基于 GTID)
GTID 复制使主从切换更简便,是生产环境推荐方案。
1. 主库配置(my.cnf)
[mysqld]
server-id = 1
log-bin = mysql-bin
gtid-mode = ON
enforce-gtid-consistency = ON
binlog-format = ROW2. 从库配置
[mysqld]
server-id = 2
gtid-mode = ON
enforce-gtid-consistency = ON
relay-log = relay-bin3. 创建复制用户(主库)
CREATE USER 'repl'@'%' IDENTIFIED BY 'secure_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;4. 从库建立复制
CHANGE MASTER TO
MASTER_HOST = 'master_ip',
MASTER_USER = 'repl',
MASTER_PASSWORD = 'secure_password',
MASTER_AUTO_POSITION = 1;
START SLAVE;
SHOW SLAVE STATUS\G -- 检查 Slave_IO_Running 和 Slave_SQL_Running5. 故障切换(从库升主)
当主库故障,在从库执行:
STOP SLAVE;
RESET MASTER;
-- 然后修改应用连接指向该从库,并调整其他从库的 MASTER_HOST6. 复制延迟监控
SHOW SLAVE STATUS\G
-- Seconds_Behind_Master 表示延迟秒数延迟过高时可调整 slave_parallel_workers 并行复制。
