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;



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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值