mysql主从复制

本文详细介绍了MySQL主从复制的工作原理,包括基于语言、行和混合类型的复制。主从复制涉及两日志、三线程的复制流程,以及主从服务器的配置步骤,如关闭防火墙、安装时间同步服务等。文章还提供了具体的配置命令,帮助读者理解并实践MySQL主从复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一.mysql主从复制与原理

二. mysql主从复制工作过程

三.mysql主从复制配置

主服务器配置

从服务器配置

1.主服务器开启同步

4.从服务器需要同主服务器


前言

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

一.mysql主从复制与原理

mysql的复制类型
1.基于语言的复制
2.基于行的复制
3.混合类型的复制

主从复制工作流程

二. mysql主从复制工作过程

1.两日志 2.三线程 3.复制方向
1.两日志:
二进制日志 master
中级日志   slaves
二进制日志—》复制到 中级日志
2.三线程
master上:dump线程
slave上: I/O线程
          SQL线程

dump线程:1)监听本地二进制日志的更新
          2)记录I/O线程对应的slave位置
          3)同步二进制日志更新内容给I/O线程
I/O线程: 1)监听master的dump线程
          2)将slave信息发送给master从服务器位置、日志的position(记录位置),超时时间
          3)接收master的dump线程传递过来的更新信息
          4)写入relay-log中
SQl线程: 1)监听中继日志
          2)将中继日志中的更新内容执行到自己的数据库中(保证从库与主库执行相同操作)

三.mysql主从复制配置

主服务器配置

关闭防火墙
systemctl stop firewalld
setenforce 0

安装时间同步服务
yum -y install ntp
yum -y install ntp ntpdate


保证时间的一致性

同步案例云的时间服务器(时间不同布会出现服务起不来,集群用不了)
ntpdate ntp1.aliyun.com

vim /etc/ntp.conf
配置时间环
fudge 127.127.1.0 stratum 10
#设置本机的时间层级为10级,0级表示时间层级为0级,是向其他服务器提供时间同步源的意思,不要设置0级
server 127.127.1.0
#设置本机的时间同步源

开启ntp服务
systemctl start ntpd

从服务器配置

关闭防火墙
systemctl stop firewalld
setenforce 0

安装时间同步服务
yum -y install ntp
yum -y install ntp ntpdate

开启服务
systemctl start ntpd

同步master服务器
ntpdate 192.168.10.20
creontab -e
*/10 * * * * /usr/sbin/ntpdate 192.168.10.20

安装mysql数据库,这里不做解释

1.主服务器开启同步

开启二进制日志文件
log_bin=master-bin

开启从服务器日志
log_slave-updates=true

主服务器id为1(不可重复)
server_id = 1


重启服务
systemctl restart mysqld

2.从服务器开启同步

开启二进制
log-bin=master-bin

从服务器上同步日志文件记录到本地(定义二进制级别为中继)
relay-log=relay-log-bin

定义relay-log的位置和名称(index索引)
relay-log-index=slave-relay-bin.index

重启服务
systemctl restart mysqld

3.主服务器基于从服务身份

设置权限用户身份
grant replication  slave      on *.* to 'myslave'@'192.168.10.%' identified by 'abc123';
          复制权限    从服务器  所有库所有表 给予用户身份来自主服务器 (允许从服务过来同布主服务器)

flush privileges;
刷新

查找需要同步的二进制日志位置

4.从服务器需要同主服务器

change master to master_host='192.168.10.20',master_user='myslave',master_password='abc123',master_log_file='master-bin.000001',master_log_pos=603; 
同步主服务器二进制日志的603位置                   
flush privileges;
刷新

开启状态
start slave;

查看状态


重要
connecting状态可能需要等一下,长时间的话也要看error
no的话就是前面配置有问题,可以到下面的error里查看是否有错误

5.验证是否主从复制

主服务器创建库表
create database morning;
use morning;
create table hi (id int(3));
insert into hi values (1),(2),(3);
select * from hi;

从服务器查看是否进行复制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值