MySQL5.7x 主从复制
在MySQL中,主从复制(Master-Slave Replication)是一种常用的数据库复制技术,用于将主服务器(Master)的数据实时复制到一个或多个从服务器(Slave)。这有助于负载均衡、备份和高可用性。
前提条件
- 主服务器和从服务器的MySQL版本应兼容(最好相同版本)。
- 所有服务器时钟应该同步,可以使用
NTP
确保时间一致性。 - 从服务器初始时的数据要与主服务器一致(可以通过备份恢复的方式实现)。
一、配置主服务器(Master)
编辑主服务器的MySQL配置文件
打开MySQL主服务器的配置文件 my.cnf 。添加或修改以下内容:
server-id
:每个服务器都需要有唯一的server-id
。log-bin
:启用二进制日志,主从复制就是基于二进制日志的。binlog-do-db
:指定要复制的数据库,可以指定多个数据库。省略这行会复制所有数据库。
重启MySQL服务:
创建用于复制的用户
在主服务器上登录MySQL并创建一个用于复制的用户。这里创建了一个名为
slave
的用户,密码为password
,并授予了复制权限。获取主服务器的状态信息
在主服务器上运行以下命令,记录输出的信息:输出类似以下内容:
File
:二进制日志的文件名。Position
:当前日志的偏移量。这两个值将在配置从服务器时使用。
二、配置从服务器(Slave)
编辑从服务器的MySQL配置文件
打开从服务器的配置文件my.cnf,添加或修改如下内容:
重启从服务器的MySQL服务:
初始化从服务器
登录从服务器的MySQL,并执行以下步骤来设置复制:
在这里,
master_ip_address
是主服务器的IP地址,MASTER_LOG_FILE
和MASTER_LOG_POS
是前面SHOW MASTER STATUS
命令中看到的值。启动复制
在从服务器上启动复制进程:
检查复制状态
检查从服务器的复制状态,确保复制正常运行:
查看输出中的两个关键字段:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果这两个值都是
Yes
,说明主从复制正常。如果不是,可以检查错误信息并进行排查。
三、测试主从复制
在主服务器上创建一个测试表或插入数据:
在从服务器上检查该表是否存在以及数据是否同步:
如果能看到相同的表和数据,说明主从复制配置成功。
MySQL5.7x 主从复制
https://blog.liuzijian.com/post/9f8ede8e-26de-75d6-6347.html