欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

MySQL 主从复制搭建与故障切换(基于 GTID)

时间:2026年08月12日 05:32:21 浏览:1

MySQL 主从复制搭建与故障切换(基于 GTID)


GTID 复制使主从切换更简便,是生产环境推荐方案。


1. 主库配置(my.cnf)


[mysqld]
server-id = 1
log-bin = mysql-bin
gtid-mode = ON
enforce-gtid-consistency = ON
binlog-format = ROW

2. 从库配置


[mysqld]
server-id = 2
gtid-mode = ON
enforce-gtid-consistency = ON
relay-log = relay-bin

3. 创建复制用户(主库)


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_Running

5. 故障切换(从库升主)


当主库故障,在从库执行:


STOP SLAVE;
RESET MASTER;
-- 然后修改应用连接指向该从库,并调整其他从库的 MASTER_HOST

6. 复制延迟监控


SHOW SLAVE STATUS\G
-- Seconds_Behind_Master 表示延迟秒数

延迟过高时可调整 slave_parallel_workers 并行复制。