MySQL的主从复制原理与配置

 MySQL主从复制的原理:

 

主库发送更新事件到从库,从库读取更新记录,并执行更新记录,从而使主机和从机的内容保持一致。

主机有一个binlog日志,主要记录主机所有的变更记录文件。并创建一个binlog dump进程,将binlog的内容发送到从库。

当start slave开始执行时,从机会产生一个I/O线程,读取主库传过来的binlog的内容并将其保存到从机的relay log(中继日志),此时从机会产生一个SQL线程,从relay log(中继日志)里面读取内容,并将内容写入到从机的数据库。

 

 

 

 

配置如下: 

主机 :192.168.75.168

从机 :192.168.75.169

要求:相同的MySQL版本,两台都是centos 7 版本的虚拟机

首先,需要将两台虚拟机关闭防火墙

systemctl stop firewalld

setenforce 0

getenforce

若是permissive 设置成功

其次,若从机是主机克隆过来,需要将两台机子的uuid进行修改(注意是修改,不是减少和增加),并将其IP地址进行修改。若是两台MySQL相同版本的不同主机,请忽略。

配置主机:

1 修改配置文件

vim /etc/my.cnf

配置内容如下:

[mysqld]  # 开启二进制日志
server_id = 1  # 配置唯一的server_id
log-bin=mysql-bin # 获取master二进制文件名及位置
log-bin-index=master-bin.index  # 常进啊一个用于slave和master通信的用户账号

systemctl restart mysqld

2 在主机上建立账户并授权slave

 create user 'copy'@'%' identified with mysql_native_password by 'Nebula@123';  # 创建 
    copy用户 ,用于让从数据库连接

 grant replication slave on *.* to 'copy'@'%'; # 赋予权限

 flush privileges; # 刷新授权表信息

在从机上测试验证是否可以登录

mysql -h192.168.75.168 -ucopy -pNebula@123;

 在数据库中输入

show master status;

 显示

 从机上配置:

1 修改配置文件

[mysqld]
server_id = 2
relay-log=relay-log
relay-log-index = relay-log.index

systemctl reatart mysqld

2 登录数据库mysql -uroot -pNebula@123(注意一定要用root登录数据库)

mysql> change master to
    -> master_host = '192.168.75.168',
    -> master_user = 'copy',
    -> master_password = 'Nebula@123',
    -> master_log_file = 'mysql-bin.000003',
    -> master_log_pos = 853;

3 开启复制

start slave;

4 查看主从复制是否配置成功

show slave status \G;

出现俩个yes就是配置成功

5 测试主从复制是否成功

在主机上进行创建库和表

 create database aa;

 use aa;
 
 create table tab1 (id auto_increment,name varchar(10),primary key(id));

 insert into tab1 (id,name) values (1,'why');

 select * from tab1;

 desc tab1;



再从机上查看库和表是否创建

自此,数据库的主从复制,拿下!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从复制是基于二进制日志(binary log)的复制方式,通过将主数据库上的操作记录在二进制日志中,并将二进制日志传输到从数据库,从数据库再执行相同的操作来实现数据同步。以下是MySQL主从复制的基本原理: 1. 主库(Master)的操作: - 主库将所有的写操作(INSERT、UPDATE、DELETE等)记录在二进制日志(binary log)中,包括数据修改语句和事务信息。 2. 从库(Slave)的配置: - 从库需要连接到主库,并设置复制相关的参数,如主库的IP地址、端口号、复制用户名和密码等。 3. 初始数据同步: - 在开始主从复制之前,通常需要进行一次初始数据同步,将主库的数据复制到从库。可以使用备份和恢复的方式来实现初始数据同步。 4. 主库和从库的连接: - 从库通过连接到主库,发送一个复制请求,请求获取主库的二进制日志。 5. 主库二进制日志传输: - 主库收到从库的复制请求后,开始将二进制日志传输给从库。传输可以通过网络传输,也可以通过共享文件系统传输。 6. 从库的二进制日志解析和执行: - 从库接收到主库传输过来的二进制日志后,开始解析并执行其中的数据修改语句和事务信息。从库会按照主库的操作顺序来执行这些操作。 7. 从库的回放和复制延迟: - 从库根据主库的操作顺序逐条执行二进制日志中的操作,将主库的操作在从库上重现。由于复制过程是异步的,从库的复制延迟可能会导致从库上的数据与主库存在一定的时间差。 8. 主库故障和主从切换: - 如果主库发生故障,可以将一个从库提升为新的主库,然后将其他从库切换到新的主库上,实现主从切换。 通过主从复制,可以实现数据的备份、读写分离、负载均衡等功能,并提高数据库的可用性和性能。同时,需要注意主从复制配置和监控,以确保数据一致性和复制的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值