MySQL-07 基于事务的 Replication(利用 GTID 来实现的复制)实现主从复制

基于事务的 Replication(利用 GTID 来实现的复制)实现主从复制

GTID(全局事务标示符)最初由google实现,在MySQL 5.6中引入.GTID在事务提交时生成,由UUID和事务ID组成.uuid会在第一次启动MySQL时生成,保存在数据目录下的auto .CNF文件里,事务ID则从1开始自增使用GTID的好处主要有两点:

不再需要指定传统复制中的master_log_files和master_log_pos,使主从复制更简单可靠
可以实现基于库的多线程复制,减小主从复制的延迟

实验环境要求: 5.7.6 以上版本

  1. 主库配置 /etc/my.cnf
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1   # 强制执行GTID一致性。
  1. 创建日志目录并赋予权限
shell> mkdir /var/log/mysql
shell> chown mysql.mysql /var/log/mysql
  1. 重启服务
shell> systemctl restart mysql
  1. 在主服务器创建一个仅具有复制过程权限的单独帐户,以最大程度地降低对其他帐户的危害。
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'Www.1.com';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  1. 在主服务器创建一个仅具有all权限的单独帐户,用于从服务器远程拷贝原有的数据。
mysql> CREATE USER 'tom'@'%' IDENTIFIED BY 'Www.1.com';
mysql> GRANT ALL ON *.* TO 'tom'@'%';
 mysql> k
flush privileges;
  1. 在从服务器上使用刚才的用户进行测试连接
shell> mysql -urepl -p'Www.1.com' -hmaster_ip
shell> mysql -utom -p'Www.1.com' -hmaster_ip
//master_ip为主服务器IP

主服务器中有数据

  1. 在从服务器中导出主服务器原有的数据
shell> mysqldump -ualice -pWww.1.com -hmaster_ip --all-databases > dump.sql
//master_ip为主服务器IP
  1. 将主服务器数据恢复到从服务器上
mysql -u账号 -p密码 < dump.sql
//从服务器拥有权限的用户

配置从服务器

  1. 配置从服务器的 /etc/my.cnf
[mysqld]
server-id=2
  1. 配置完重启从服务器
shell> systemctl restart mysqld
  1. 进入从服务器mysql,执行如下操作
mysql> CHANGE MASTER TO
MASTER_HOST='mysql-master1',
MASTER_USER='repl',
MASTER_PASSWORD='Www.1.com',
MASTER_AUTO_POSITION=1;
mysql> start slave;
  1. 检查是否成功
show slave status\G

输出结果中应该看到 I/O 线程和 SQL 线程都是 YES, 就表示成功。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值