前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL一主多从复制(基于GTID)

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

作者头像
嘉美伯爵
发布2021-01-18 11:11:57
7650
发布2021-01-18 11:11:57
举报

环境准备

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

MySQL配置

  • 查看是否开启了GTID模式
image-20201110163302003
image-20201110163302003

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

代码语言:javascript
复制
# 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唯一

代码语言:javascript
复制
# 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

重启数据库

代码语言:javascript
复制
systemctl restart mysqld

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

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

image-20201110165848669
image-20201110165848669

备份数据库

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

代码语言:javascript
复制
# 备份
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

配置账号

主库创建账号

创建用于复制的账号

代码语言:javascript
复制
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)

从库进行连接

进行数据库连接

代码语言:javascript
复制
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)

配置前

image-20201110172707416
image-20201110172707416

配置后

image-20201110172725502
image-20201110172725502

开启从库复制链路

代码语言:javascript
复制
start slave;

查看状态

show slave status\G

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

测试

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

代码语言:javascript
复制
# 主库创建
create table test_gtid;
# 从库查看
show databases;

可能遇到的问题

测试链路

代码语言:javascript
复制
mysql -urepl -p123456Gao! -h192.168.43.54

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
  • MySQL配置
  • 配置账号
  • 查看状态
  • 可能遇到的问题
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档