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

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

原创
作者头像
嘉美伯爵
修改2021-01-05 14:32:42
7640
修改2021-01-05 14:32:42
举报

环境准备

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

MySQL配置

  • 查看是否开启了GTID模式
image-20201110163302003
image-20201110163302003
  • 若未开启在my.cnf文件最后添加,开启GTID(主)
代码语言:txt
复制

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

代码语言:txt
复制
  • 若未开启在my.cnf文件最后添加,开启GTID(从)

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

代码语言:txt
复制

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

代码语言:txt
复制
  • 重启数据库
代码语言:txt
复制

systemctl restart mysqld

代码语言:txt
复制
  • 再次确认一下是否开启成功

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

image-20201110165848669
image-20201110165848669
  • 备份数据库

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

代码语言:txt
复制

备份

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

代码语言:txt
复制

配置账号

  • 主库创建账号

创建用于复制的账号

代码语言:txt
复制

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)

代码语言:txt
复制
  • 从库进行连接

进行数据库连接

代码语言:txt
复制

mysql> change master to master_host = '192.168.43.54',

代码语言:txt
复制
  -> master_user = 'repl',
代码语言:txt
复制
  -> master_password = '123456Gao!',
代码语言:txt
复制
  -> master_auto_position = 1
代码语言:txt
复制
  -> ;

Query OK, 0 rows affected, 2 warnings (0.07 sec)

代码语言:txt
复制
  • 配置前
image-20201110172707416
image-20201110172707416
  • 配置后
image-20201110172725502
image-20201110172725502
  • 开启从库复制链路
代码语言:txt
复制

start slave;

代码语言:txt
复制

查看状态

  • show slave status\G

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

  • 测试

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

代码语言:txt
复制

主库创建

create table test_gtid;

从库查看

show databases;

代码语言:txt
复制

可能遇到的问题

  • 测试链路
代码语言:txt
复制

mysql -urepl -p123456Gao! -h192.168.43.54

代码语言:txt
复制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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