Mysql主从复制

1、准备服务器

Mysql主从复制,本文以Mysql8.0.28版本为例

MySQL复制过程分成三步:

①MySQL Master将数据变更写入二进制日志( binary log);

②Slave将Master的binary log拷贝到它的中继日志(relay log);

③Slave重做中继日志中的事件,将数据变更反映它自己的数据。

准备两台Mysql数据库服务器,我这里是一台以自己电脑为主服务器,另外开了一台虚拟机为从服务器。Mysql版本都为8.0.28版本。因为都是在同一台服务器上,不用考虑端口开放以及防火墙问题。

数据库 服务器IP 数据库版本
Master 192.168.200.100 8.0.28
Slave 192.168.200.101 8.0.28

 

2、主库Master配置

2.1、配置my.ini文件

在主库配置文件下加上如下配置保存,然后需要重启一下Mysql服务。

[mysqld]
#主从复制:主库配置 mysqld下
#[必须]启用二进制日志
log-bin=mysql-bin
#[必须]服务器唯一ID(唯一即可)
server-id=100

2.2、创建主库用户

主库创建testslave用户,赋予replication slave,replication client两个服务器权限。

3.3、查看Master主库状态

执行下面SQL,记录下结果中File和Position的值。

#8.0.22版本之后
show replica status;
#8.0.22版本之前
show slave status;

3、从库Slave配置

3.1、配置my.ini文件

在从库配置文件下加上如下配置保存,从库的ID和主库不重复即可。然后需要重启一下Mysql服务。

[mysqld]
# 主从复制:从库配置 mysqld下
server-id=101

3.2、设置主库相关信息

CHANGE MASTER TO
MASTER_HOST='192.168.200.100',
MASTER_USER='testslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000007',
MASTER_LOG_POS= 157,
MASTER_PORT= 3306;

相关参数说明:

(1)MASTER_HOST : 主库IP地址

(2)MASTER_USER : 访问主库进行主从复制的用户名(上面在主库创建的“testslave”账号)

(3)MASTER_PASSWORD :访问主库进行主从复制的用户名(上面在主库创建的“testslave”账号的密码)

(4)MASTER_LOG_FILE : 从哪个日志文件开始同步(上述查询Master状态中展示的有)

(5)MASTER_LOG_POS: 从指定日志文件的哪个位置开始同步(上述查询Master状态中展示的有)

(6)MASTER_PORT :主库数据库端口

3.3、查看Slave从库状态

#8.0.22版本之后
show replica status;
#8.0.22版本之前
show slave status;

通过状态信息中的 Replica_IO_running 和 Replica_SQL_running 可以看出主从同步是否就绪,如果这两个参数全为Yes,表示主从同步已经配置成功。

 4、测试成功

posted @ 2023-03-20 10:45  一级退堂鼓表演艺术家  阅读(23)  评论(0编辑  收藏  举报