当前位置:网站首页>Mysql主从复制
Mysql主从复制
2022-07-23 18:07:00 【二王一个今】
介绍
MySQL数据库默认是支持主从复制的,底层基于MySQL数据库自带的 二进制日志 功能实现。
二进制日志: 也称为binlog,这是MySQL自带的一种日志功能,它会记录下所有的增删改语句,但是不记录查询语句。
主从复制原理:MySQL的主从复制其实就是由主库生成binlog,里面记录用户对数据库产生影响的操作。从库负责读取这个日志,并进行解析得到对应的SQL语句,然后在自己所在的服务器上执行,就可以得到跟主库一致的数据了。
MySQL复制过程分成三步:
master将数据变更写入二进制日志
slave将master的二进制日志拷贝到它的中继日志(relay log)
slave重做中继日志中的事件,生成对应的数据存储到自己的数据区
实现
实现MySQL的主从复制其实非常简单,只需要对MySQL进行简单的配置即可
① 准备服务器
提前准备两台服务器,并且在服务器中安装MySQL,服务器的信息如下:
| 数据库 | IP | 数据库版本 |
|---|---|---|
| Master | 192.168.136.129 | 5.5.49-log |
| Slave | 192.168.136.130 | 5.5.49-log |
==第一台可以直接使用前面一天的,然后重新安装一台Linux操作系统,然后在上面仅仅部署mysql即可==
② 防火墙设置
分别修改两台服务器的防火墙策略,放行3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --list-ports
③ 主库配置
下面操作仅仅在master库上执行[1. 开启二进制日志 2.创建账户]
# 1. 修改mysql的配置文件/etc/my.cnf,保证下面两项
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志(当前默认已开启)
server-id=1 #[必须]服务器唯一ID(当前默认就是1)
# 2. 重启mysql服务
systemctl restart mysql
# 3. 登录mysql
mysql -uroot -proot
# 4. 在mysql命令行中,创建数据同步的用户并授权
# 本操作会在mysql中创建一个账户xiaoming,密码为[email protected],并且给xiaoming用户授予REPLICATION SLAVE权限。
# 常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by '[email protected]';
# 在mysql命令行中,查看master同步状态
show master status;
==注:截图就是Master的当前状态,执行完此SQL后,在主从复制完成之前这段时间,不能再执行其他操作==
④ 从库配置
下面操作仅仅在slave库上执行
# 1. 修改mysql的配置文件/etc/my.cnf,保证下面两项
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志(当前默认已开启)
server-id=2 #[必须]服务器唯一ID(当前默认1,必须手动修改成2)
# 2. 重启mysql服务
systemctl restart mysql
# 3. 登录mysql
mysql -uroot -proot
# 4. 在mysql命令行中,执行复制的操作
# 注意,这条命令中各项参数,需要根据实际情况进行修改
change master to
master_host='192.168.136.129', -- 主节点ip地址
master_user='xiaoming', -- 主节点创建的用于主从复制的账号
master_password='[email protected]', -- 上面账号的密码
master_log_file='mysql-bin.000002', -- 从主节点哪个日志文件开始同步
master_log_pos=258; -- 从主节点日志文件的哪个位置开始同步
# 5. 在mysql命令行中,开始复制操作
# 启动I/O线程从主库读取binlog,并存储到relaylog中继日志文件中。
# 启动SQL线程读取中继日志,解析后在从库重放。
start slave;
# 6. 在mysql命令行中,查看主从复制的状态
show slave status\G;这个里面的 有个注意点,不用瞎写,直接上下一样就好。

得到这个结果,就代表你成功了
测试
到此为止,主从复制环境已经搭建好了,接下来,我们可以连接上两台MySQL服务器进行测试。
测试时,我们只需要在主库Master执行操作,查看从库Slave中是否将数据同步过去即可。
① 在master中创建数据库itcast, 刷新slave查看是否可以同步过去

② 在master的itcast数据下创建user表, 刷新slave查看是否可以同步过去

③ 在master的user表中插入一条数据, 刷新slave查看是否可以同步过去

边栏推荐
- SecureCRT乱码问题解决方法[通俗易懂]
- Eight common SQL misuses in MySQL
- Tuple error caused by different regularization
- Mbio | the sun Chaomin formation of Ocean Institute has verified in situ the new pathway of microbial mediated elemental sulfur formation in the deep sea
- C language small project - address book (static version + dynamic version + file version)
- How can mysqldump export content without comments?
- Summary of smart data corresponding to some topics
- PowerCLi 管理VMware vCenter 一键批量部署OVA
- MySQL 啥时候用表锁,啥时候用行锁?
- 三维点云课程(六)——三维目标检测
猜你喜欢

记一次被网络诈骗的经历

树莓派3b串口登录前准备工作

PowerCLi 添加esxi主机到vCenter

Using FRP to achieve intranet penetration

Leetcode daily question (1514. path with maximum probability)

AE tutorial, how to animate illustrator layered documents in after effects?

树莓派ssh登录

Mee | Zhejiang University Chenglei group develops a new method for designing and constructing synthetic flora

MySQL 啥时候用表锁,啥时候用行锁?
![[C language] program environment and preprocessing](/img/5c/7f14c73e075a54a11d7ff44907c30d.jpg)
[C language] program environment and preprocessing
随机推荐
Labyrinth DP integration
Mysql database [Database Foundation -- introduction]
ACM MM 2022 Oral | DIG: 自监督文字识别的新框架,刷新11个公开场景文字数据集的识别性能,平均提升5%...
基于自学习的机器人决策系统(达闼科技赵开勇)
.net core implements background tasks (scheduled tasks) longbow Tasks component (III)
树莓派ssh登录
Read data from txt and convert it to Yolo format data
canvas绘制文本和清除绘制
DP problem collection
一道题目初探组合数学与DP关系,可重集组合公式推导
入门数据库days1
为啥一问 JVM 就 懵B ?
Elk note 25 - expérience rapide APM
Latex (KAtex) CSDN Greek alphabet representation, mathematical symbols, set symbols, special marks
Type-C Bluetooth speaker single C-Port rechargeable OTG solution
入门数据库days2
安全停止nodeos
Todo fix bug tag feature and other configurations
数据链路层 -------- 以太网 和 ARP
公链之Sui(前脸书/Meta员工成立的新公链项目)