MySQL主从复制基于binlog与GTID详解
短信预约 -IT技能 免费直播动态提醒
目录
- 一、基于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
MySQL主从复制基于binlog与GTID详解
下载Word文档到电脑,方便收藏和打印~
下载Word文档
相关文章
- 在 Java 中,三个点(...)具体代表什么含义呢?(java中三个点是什么意思)
- Java 中 Replace 和 ReplaceAll 的区别究竟在哪里?(Java中的Replace和ReplaceAll有什么区别)
- 如何有效提升 Java con 的查询效率?(如何提高java con的查询效率)
- 提升Ruby代码安全性:全面攻略
- Java 中 charAt 方法到底是什么?(java的charat方法是什么)
- Java 流的概念究竟是什么?(java流的概念是什么)
- 如何在 Java 中有效处理时间戳的时区问题?(如何在Java中处理时间戳的时区问题)
- 在 JavaScript 中,getter 与 setter 究竟该如何使用呢?(JavaScript中getter与setter怎么使用)
- Java 集合框架究竟能实现哪些复杂操作?(Java集合框架能实现哪些复杂操作)
- 如何在 JAVA 中返回文件流给前端?(JAVA怎么返回文件流给前端)
猜你喜欢
MySQL主从复制基于binlog与GTID详解
目录一、基于binlog的主从复制搭建1、准备环境2、数据库中创建并授权有主从复制权限账户3、主库的配置5、修改UUID6、查看从库当前监听主库状态7、其余从库配置与以上相同二、基于GTID的主从复制搭建1、准备三台mysql机器环境,并且
2024-10-04
2024-04-02
2024-04-02
2024-04-02
一文详解MySQL Binlog日志与主从复制
这篇文章主要介绍了一文详解MySQL Binlog日志与主从复制,Binlog是Binary log的缩写,即二进制日志,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
2022-11-13
2024-04-02
2024-04-02
2024-04-02
2024-04-02
2024-04-02
2024-04-02
MySQL主从复制详解
①主服务器将所有数据和结构更改记录到二进制日志中。 ②从属服务器从主服务器请求该二进制日志并在本地应用其内容。 ③IO:请求主库,获取上一次执行过的新的事件,并存放到relaylog ④SQL:从relaylog中将sql语句翻译给从库执行 二.主从复制原理
2017-03-30
基于 SSL 实现MySQL主从复制
1、主服务器配置1)、在主服务器创建SSL/RSA文件 #在MySQL5.7之后,安装完毕MySQL会在data目录下自动生成,这里模拟没有这些文件 [[email protected] ~]# mysql_ssl_rsa_setup --user=mysql
2016-06-28
2024-04-02
MySQL基于SSL安全连接的主从复制(过程详解)
目录主从复制的原理部署master1. 主机创建 SSL/RSA 文件2. 赋予权限并重启。3. 登录mysql查看ssl是否开启,并创建一个复制用户。4. master开启二进制日志,重启后查看二进制日志文件。5. 防火墙配置,实验环境中
2023-04-06
2024-04-02
MySQL 主从复制原理与实践详解
本文实例讲述了MySQL 主从复制原理与实践。分享给大家供大家参考,具体如下:
简介
MySQL 的主从复制又叫 Replication、AB 复制。至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器之间进行)。
比如A服务
2022-05-11
MySQL主从复制配置详解
主服务器的UUID和从服务器的UUID重复,因为我是安装成功一台数据库后直接克隆的,所以他们的UUID是一样的,就会报这个错。可以修改一下从库的UUID即可。
MySQL主从复制原理详解
MySQL主从复制是指数据可以从一个MySQL数据库服务器的主节点复制到一个或多个从节点。主节点记录所有的写操作,并将这些操作记录到二进制日志(binary log)中,从节点则通过连接主节点,获取并应用这些二进制日志,从而实现数据的同步。
MySQL主从复制最全详解
半同步复制,就是主节点执行写操作后,等待至少一个从节点确认收到数据后再返回给客户端,这就是半同步复制。
编程热搜
[mysql]mysql8修改root密码
use mysqlselect * from user where user="root";update user set password=password("mysql@2020") where user="root";ERROR 1064 (42000)MySQL专题3之MySQL管理
1、启动以及关闭MySQL服务器- 首先,我们需要通过以下命令来检查MySQL服务器是否已经启动:ps -ef | grep mysqld- 如果MySQL已经启动,以上命令将输出mysql进程列表,如果mysql未启动,你可以使用以下
编程资源站
- 资料下载
- 历年试题
目录
友情链接编程网
留言反馈