专栏首页微服务架构日记MySQL一主多从复制(基于GTID)

MySQL一主多从复制(基于GTID)

环境准备

  • 确保MySQL版本大于5.7
  • 确保防火漆关闭或开启各服务器的3306端口

MySQL配置

  • 查看是否开启了GTID模式

若未开启在my.cnf文件最后添加,开启GTID(主)

# must params
server_id =  100
enforce_gtid_consistency       = on
gtid_mode                      = on

# binlog
log_bin = mysqlbin
log_slave_updates = 1
binlog_format = row

# relay log
skip_slave_start = 1

若未开启在my.cnf文件最后添加,开启GTID(从)

需要注意的是,若配置多台MySQL从服务器,确保server_id唯一

# must params
server_id =  101
enforce_gtid_consistency       = on
gtid_mode                      = on

# binlog
log_bin = mysqlbin
binlog_format = row
master_info_repository = TABLE

# relay log
relay_log_info_repository = TABLE

重启数据库

systemctl restart mysqld

再次确认一下是否开启成功

gtid_mode 被设置为on,即为开启成功

备份数据库

若使用的是三个数据库,数据不一样,需要进行数据的备份,导入

# 备份
mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql
# 导出
mysqldump -u username -p dbname > dbname.sql
# 导入
mysqldump -u username -p dbname < dbname.sql

配置账号

主库创建账号

创建用于复制的账号

mysql> create user repl@'192.168.43.%' identified by '123456Gao!';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to repl@'192.168.43.%';
Query OK, 0 rows affected (0.06 sec)

从库进行连接

进行数据库连接

mysql> change master to master_host = '192.168.43.54',
    -> master_user = 'repl',
    -> master_password = '123456Gao!',
    -> master_auto_position = 1
    -> ;
Query OK, 0 rows affected, 2 warnings (0.07 sec)

配置前

配置后

开启从库复制链路

start slave;

查看状态

show slave status\G

确保下图红框的两个内容状态为yes,

测试

在主库创建数据库,然后从库参看是否正确同步的该数据库

# 主库创建
create table test_gtid;
# 从库查看
show databases;

可能遇到的问题

测试链路

mysql -urepl -p123456Gao! -h192.168.43.54

Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL一主多从复制(基于GTID)

    mysqldump --single-transaction --master-data=2 --triggers --routines --all-datab...

    嘉美伯爵
  • MySQL 5.7基于GTID及多线程主从复制

    MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使...

    小小科
  • MySQL基于GTID主从复制的杂谈

    先来回顾一下MySQL的二进制知识点。基于Row格式的日志可以避免MySQL主从复制中出现的主从不一致问题。在一个sql语句修改了1000条数据的情况下,基于段...

    用户2032165
  • 【MySQL】主从GTID复制修复

    作者 董红禹 沃趣科技数据库工程师 导 读 ---- GTID是5.6新增特性,减少DBA运维的工作。在以前一主两从架构下当主库M1发生故障我们需要选择一个从...

    沃趣科技
  • 【Mysql】mysql 基于GTID复制

    3、一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。

    用户5522200
  • 配置MySQL GTID 主从复制

    Leshami
  • Mysql 的GTID主从复制方式

    GTID的作用 GTID 是‘全局事务ID’的意思,在 MySQL5.6 中被添加进来 以前 MySQL 的主从复制是基于复制点的,slave 从 master...

    dys
  • MySQL一主多从复制(基于二进制日志)

    嘉美伯爵
  • 【MySQL】Mysql5.6基于gtid的主从复制搭建+1062问题处理

    说明: 环境 mysql-master:172.16.200.43 mysql-slave:172.16.200.44 系统:centos7 版本:MySQL5...

    用户5522200

扫码关注云+社区

领取腾讯云代金券