目录
- 一、基于binlog的主从复制搭建
- 1、准备环境
- 2、数据库中创建并授权有主从复制权限账户
- 3、主库的配置
- 5、修改UUID
- 6、查看从库当前监听主库状态
- 7、其余从库配置与以上相同
- 二、基于GTID的主从复制搭建
- 1、准备三台mysql机器环境,并且创建mysql并赋予权限,同上
- 2、主库配置
- 3、从库配置
- 4、其余从库做相同配置,查看主从复制状态
- 总结
一、基于binlog的主从复制搭建
1、准备环境
提前准备三台搭建了MySQL以及关闭防火墙的linux,并保证三台MySQL起始数据一致
实战中最好是新的mysql,方便操作
如果无法新建需使用数据备份方式将数据库数据恢复一致
2、数据库中创建并授权有主从复制权限账户
mysql> grant replication slave,reload,super on *.* to 'testslave'@'%' identified by '123456';
mysql> flush privileges;
#注意:生产环境中密码采用高级别的密码,实际生产环境中将'%'换成具体的ip
#注意:该用户理论上只需要主库存在,从库不需要创建,但在实战中,由于各种突发情况从库随时有可能升级为主库,所以所有从库也要创建
replication slave:拥有此权限可以查看从服务器,从主服务器读取二进制日志。
super权限:允许用户使用修改全局变量的SET语句以及CHANGE MASTER语句
reload权限:必须拥有reload权限,才可以执行flush [tables | logs | privileges]
3、主库的配置
修改数据库配置文件 /etc/my.cnf
保证主库以下两点
1.binlog日志功能打开
2.拥有server-id,并且在该主从复制集群中唯一
log-bin=/opt/xiaolu/log/a.log (自己写目录)
server-id=153 (要保持唯一)
重启数据库
#进入主库查看当前主库状态
mysql> show master status\G
# 注意:此次查询关注file和position两条信息,从库配置时使用
4、从库的配置
修改数据库配置文件 /etc/my.cnf
保证从库有唯一的server-id
重启数据库
进入从库
#查看从库当前监听主库状态
mysql> show slave status\G
Empty set (0.00 sec) #默认未开启监听
# 执行如下命令
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.37.153', #主库ip
MASTER_USER='testslave', #主库用户名(第二步创建的)
MASTER_PASSWORD='123456', #主库密码(第二步创建的)
MASTER_LOG_FILE='a.000002', #主库配置文件(第三步主库配置时截图的参数)
MASTER_LOG_POS=154; #主库日志偏移量(第三步主库配置时截图的参数)
# 开启监听
mysql> start slave;
#查看从库当前监听主库状态
mysql> show slave status\G
如果报UUID错误信息就去/opt/xiaolu/data/mysql/auto.cnf文件去改UUID
提示:重置从库的复制配置命令:RESET SLAVE ALL;
5、修改UUID
# vim /opt/xiaolu/data/mysql/auto.cnf
[auto]
server-uuid=e2ee6d4c-80c9-11ef-9bac-000c297e2bf5
随便改个数字就可以
[root@localhost mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@localhost mysql]# service mysqld start
Starting MySQL. SUCCESS!
重启数据库
6、查看从库当前监听主库状态
mysql> show slave status\G
7、其余从库配置与以上相同
配置完成后查看主从复制是否实现
# 查看线程
mysql> SHOW PROCESSLIST\G
- 第 1 行 - 表示当前有一个由
root
用户在本地(localhost
)执行的SHOW PROCESSLIST
查询,状态为 starting,说明该命令刚刚开始执行,花费的时间为 0。 - 第 2 行 和 第 3 行 - 这两行显示的是来自用户
testslave
的两个Binlog Dump
进程,其主机分别为192.168.37.154
和192.168.37.155
。它们的状态均为 Master has sent all binlog to slave; waiting for more updates,这意味着从库正在等待来自主库的新更新。
二、基于GTID的主从复制搭建
1、准备三台mysql机器环境,并且创建mysql并赋予权限,同上
mysql> grant replication slave,reload,super on *.* to 'testslave'@'%' identified by '123456';
mysql> flush privileges;
#注意:生产环境中密码采用高级别的密码,实际生产环境中将'%'换成具体的ip
#注意:该用户理论上只需要主库存在,从库不需要创建,但在实战中,由于各种突发情况从库随时有可能升级为主库,所以所有从库也要创建
replication slave:拥有此权限可以查看从服务器,从主服务器读取二进制日志。
super权限:允许用户使用修改全局变量的SET语句以及CHANGE MASTER语句
reload权限:必须拥有reload权限,才可以执行flush [tables | logs | privileges]
2、主库配置
修改数据库配置文件 /etc/my.cnf
保证以下四点
log-bin=/opt/xiaolu/log/a.log #开启binlog日志,master必写
server-id=153 #定义server id master必写 并保持唯一
gtid_mode=ON #开启gtid
enforce_gtid_consistency=1 #强制gtid
重启数据库
3、从库配置
修改数据库配置文件 /etc/my.cnf
server-id=154
gtid_mode=ON
enforce_gtid_consistency=1
重启数据库
#进入从库
mysql> stop slave; #停止数据库监听
Query OK, 0 rows affected (0.01 sec)
#设置从库监听信息
mysql> change master to
master_host='192.168.37.153', #主ip 地址 最好用域名
master_user='testslave', #主服务上面创建的用户
master_password='111111',
master_auto_position=1;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
# 开启监听
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
# 查看从库监听状态
mysql> show slave status\G
4、其余从库做相同配置,查看主从复制状态
# 查看线程
mysql> SHOW PROCESSLIST\G
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网(www.lsjlt.com)。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java OGNL 表达式的解析原理究竟是什么?(java ognl表达式的解析原理是什么 )
- Java泛型中的 extends 操作符对性能有哪些影响?(Java泛型extends的性能影响如何)
- 如何掌握 Java 图形化界面设计原则?(java图形化界面设计原则)
- 在 Java 中如何获取栈顶元素?(java怎么获取栈顶元素)
- 软考高级考试可以自己选批次吗?
- Java 中如何获取字符数组中的字符?(java字符数组怎么获取字符)
- 在 Java 中,JLabel 的文本是否能够实现旋转?(java中jlabel的文本能否实现旋转)
- Java编程中 abstract 类和方法的详细解析与应用指南(java编程abstract类和方法详解)
- 如何判断 Java 数组中是否存在重复元素?(Java怎么判断数组是否有重复元素)
- Java 中魔法值究竟是什么含义?(java魔法值是什么意思)
猜你喜欢
AI推送时光机MySQL主从复制基于binlog与GTID详解
数据库2024-10-04
MySQL 5.7 基于GTID搭建主从复制
数据库2024-04-02
Mysql 主从复制之半同步复制(基于gtid)
数据库2024-04-02
mysql5.6基于GTID主从复制设置
数据库2024-04-02
一文详解MySQL Binlog日志与主从复制
数据库2022-11-13
mysql之 MySQL 主从基于 GTID 复制原理概述
数据库2024-04-02
基于GTID的主从复制搭建
数据库2024-04-02
通过 mysqldump 搭建基于 gtid MySQL 5.7 主从复制
数据库2024-04-02
怎么理解mysql GTID主从复制
数据库2024-04-02
MySQL主从复制之GTID模式详细介绍
数据库2024-04-02
docker下如何部署MySQL8基于GTID的主从复制
数据库2024-04-02
MySQL主从复制详解
数据库2017-03-30
基于 SSL 实现MySQL主从复制
数据库2016-06-28
docker下MySQL8基于GTID的主从复制如何完成部署
数据库2024-04-02
MySQL基于SSL安全连接的主从复制(过程详解)
数据库2023-04-06
MySQL基于SSL协议的主从复制
数据库2024-04-02
MySQL 主从复制原理与实践详解
数据库2022-05-11
咦!没有更多了?去看看其它编程学习网 内容吧