mysql主从复制的配置方法和原理简介

1.介绍

MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MysQL数据库(slave,即从库)从另一台MNySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。

MySQL复制过程分成三步:

  • master将改变记录到二进制日志(binary log)
  • slave将master的binary log拷贝到它的中继日志(relay log)
  • slave重做中继日志中的事件,将改变应用到自己的数据库中
    在这里插入图片描述

2.具体操作

首先准备两台装有mysql的OS(如果使用虚拟机,不要使用克隆之后改IP的方式,直接新建两个虚拟机)
1.配置主库Master
1.1首先修改mysql的配置文件

vim /etc/my.cnf

在[mysqld]后添加

log-bin=mysql-bin
server-id=100

log-bin=mysql-bin表示启动二进制日志,server-id=100表示唯一ID
然后wq退出保存
1.2重启mysql服务

systemctl restart mysqld

1.3登录到mysql

mysql -u root -p

登录后执行以下SQL

grant REPLICATION SLAVE on *.* to 'sirius'@'%' identified by 'Chd1998__';

注:上面SQL的作用是创建一个用户sirius,密码为Chd1998__,并且给xiaoming用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须是被master授权具有该权限的用户,才能通过该用户复制。

1.4执行

show master status;

记录结果当中的以下值,之后便不要再进行任何操作,防止结果发生改变
在这里插入图片描述
2.配置从库Slave
现在操作另一个mysql服务器
2.1首先修改mysql的配置文件

vim /etc/my.cnf

在[mysqld]后添加

server-id=101

在这里插入图片描述
2.2重启mysql服务

systemctl restart mysqld

2.3登录到mysql

mysql -u root -p

登录后执行以下SQL

change master to master_host='主库master的ip地址',master_user='sirius',master_password='Chd1998__',master_log_file='mysql-bin.000001',master_log_pos=439;

master_host为主库master的ip地址,master_user、master_password为步骤1.3当中创建的用户名和密码,master_log_file、master_log_pos为步骤1.4当中查询到的两个值
执行成功后开启slave

start slave;

2.4查看一下从库的状态

show slave status;

显示的结果可能比较混乱,我们可以将其复制到文本编辑器查看。
结果很多,但我们重点看以下两个,如果都是yes,说明配置成功
在这里插入图片描述

3.测试

在主数据库master创建一个databases
在这里插入图片描述
会发现从数据库slave也创建了一个
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值