Mysql 5.7 主从复制(一主一从)搭建

1.修改主库配置文件

#开启二进制日志
log-bin=/var/lib/mysql/mysql-bin 
#⽇日志中会记录成每⼀一⾏行行数据被修改的形式】 
binlog-format=ROW
# 二进制日志自动删除的天数。一般将x设置为短点,如10,默认值为0,表示“没有自动删除”
expire_logs_days = 10
##指定当前机器器的服务ID(如果是集群,不不能重复,可设置为ip的最后位)】
server_id=11

# 不同步哪些数据库  
binlog-ignore-db = mysql  
binlog-ignore-db = information_schema  
  
# 只同步哪些数据库,除此之外,其他不同步  
# binlog-do-db = test

2 重启主库MySQL服务

systemctl restart mysqld

3 为从库创建用于复制的用户,并赋权

  1. 创建用户
CREATE USER 'repl@12'@'192.168.91.12' IDENTIFIED BY 'Repl123.';
  1. 为用户赋权
GRANt REPLICATION SLAVE ON *.* TO 'repl@12'@'192.168.91.12';
  1. 刷新权限
 flush privileges;

4 查看主库状态

SHOW MASTER STATUS;

Mysql 5.7 主从复制(一主一从)搭建_第1张图片

5 修改从库的配置文件

# 设置server-id 不能与主库的server-id一样,可设置为从库服务器ip的最后一位
server-id=110 #设置server-id,192.168.0.110

6 重启从库

systemctl restart mysqld

7 进入从库,设置用于同步的主库的host 用户名、密码 二进制文件的位置

# MASTER_LOG_FILE 与 MASTER_LOG_POS 通过 在主库中执行 SHOW MASTER STATUS;来查看
CHANGE MASTER TO MASTER_HOST='192.168.91.11', MASTER_USER='repl@12', MASTER_PASSWORD='Repl123.', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=777;

8 开启从库的同步模式

start slave;

如果 Slave_IO_Running和Slave_SQL_Running均为Yes,则表示主从复制搭建成功
Mysql 5.7 主从复制(一主一从)搭建_第2张图片

如果出现 Slave_IO_Running: Connecting,可能是主库的防火墙未关闭,需要关闭主库的防火墙,或者开放MySQL服务的端口
Mysql 5.7 主从复制(一主一从)搭建_第3张图片
如果出现 下面的错误,原因是克隆了服务器,两台MySQL服务的uuid重复了,解决方案只需要把从库的auto.cnf删除,然后重启MySQL服务即可
1.进入MySQL数据目录

cd /var/lib/mysql

2 删除auto.cnf;

rm -rf auto.cnf 

3 重启MySQL服务

systemctl restart mysqld

Mysql 5.7 主从复制(一主一从)搭建_第4张图片

9 测试

你可能感兴趣的:(mysql,数据库,服务器)