Linux系统中为MySql设置主从复制

本文详细介绍了MySQL数据库的主从复制配置,包括配置意义、复制原理及步骤。主从复制能防止数据丢失,分担服务器压力。配置涉及修改配置文件、重启服务、创建复制用户、设置权限、记录主库状态等。测试表明,主库与从库数据保持一致,实现了有效的数据同步。
摘要由CSDN通过智能技术生成

一、数据库主从复制的意义

  1. 避免单一数据库硬盘损坏导致数据丢失
  2. 可以将查询请求中读操作和写操作的压力,分担到不同的数据库服务器上,降低单台数据库服务器的压力

二、MySql主从复制的原理

MySql的主从复制是基于MySql数据库自带的二进制日志功能(binary log),是一个异步的复制过程。
一台或多台数据库从库(slave)从一台MySql主库(master)进行二进制日志的复制,然后再进行日志的解析并应用到自身,最终实现从库的数据库和主库的数据保持一致。

MySql主从复制的过程分三步:

  1. master将改动记录到二进制日志(binary log)
  2. slave将master的binary log拷贝到它的中继日志(relay log)
  3. slave重做中继日志中的事件,将改变应用到自己的数据库中

三、MySql主从复制的配置步骤

0. 配置-前置条件

提前准备好两台服务器,分别安装MySql并启动服务成功
e.g.:

  • 主库Master 192.168.119.129
  • 从库Slave 192.168.119.128

可以使用两台虚拟机或云服务器,之后用FinalShell之类的连接工具进行控制。推荐使用虚拟机,一台虚拟机完成MySql的安装和配置后,完全克隆一下就行。不建议使用Docker,在实际的生产流程里,数据库不太可能安装在容器中,真这么干可能会被人打死。容器的销毁,比之服务器的物理损坏,要容易得多。

在这里插入图片描述

1. 配置-主库Master

第一步:修改MySql数据主库Master的配置

修改MySql数据库的配置文件 /etc/my.cnf

[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 # [必须]服务器唯一ID

在这里插入图片描述

第二步:重启MySql服务

Bash命令:systemctl restart mysqld

配置修改完成后,重启对应服务器的MySql服务使配置生效,如果没报错,基本就是重启成功了。

在这里插入图片描述

第三步:在Master的服务中为Slave创建一个用户,设置响应权限

登录MySql后执行以下语句,“%”意为允许所有IP访问。

GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';

PS:这一SQL语句的作用是创建一个用户xiaoming,密码为Root@123456,并且xiaoming用户授予REPLICATION SLAVE权限,这一权限常被用于建立主从复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。

在这里插入图片描述

第四步:登录MySql数据库,查看主库状态,记录下结果中的File和Position值

show master status


其中File为日志文件的名称,Position为当前改动的位置。
File:mysql-bin.000002
Position:441

注意在显示了这里的状态栏之后,不要再在主库中进行任何操作,否则日志文件的名称和位置都会发生改变。

2. 配置-从库Slave

第一步:修改从库的配置文件

修改MySql Slave的配置文件 /etc/my.cnf , 在配置中增加如下的一行。

[mysqld]
server-id=101 #[必须]服务器唯一ID

第二步:重启MySql服务

使对配置的修改生效

systemctl restart mysqld

第三步:登录MySql Slave,修改其Master

登录MySql,执行下面的SQL:

change master to master_host='192.168.119.129',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000002',master_log_pos=441;

start slave;

在这里插入图片描述

第四步:登录MySql数据库,查看从数据库的状态

执行以下SQL

show slave status \G;

\G 意为格式化输出,可以方便阅读
在这里插入图片描述
这时,这两个数据库的主从复制便已经配置完成,可以正常运行。

3. 测试

这时,如果在主库中新建一个数据库项目,从库中也会出现一个一样的数据库项目:
在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值