环境

  • 操作系统:CentOS 7
  • Mysql版本:8.0
  • MysqlServer_1:M1(主)
  • MysqlServer_2:M2(从)

实现

  1. 修改M1配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
  1. 修改M2配置文件:vim /etc/my.cnf (my.cnf路径位置根据自己实际路径更改)
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
  1. 依次重启主机M1、从机M2服务,注意是指重启Mysql服务不是机器重启

  2. 在主机上建立帐户slave

create user 'slave'@'%' identified by '123456';
  1. 授权,这里只授予SLAVE权限,当然也可以授所有权限
grant REPLICATION SLAVE on *.* to 'slave'@'%';
  1. 在M1主机MySQL里执行命令,查询master的状态
show master status;

记录下File和Position的值 注意:执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

  1. 在M2从机上配置需要复制的主机,修改完毕之后再M2服务上执行该SQL
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
  1. 启动从服务器复制功能
start slave;
  1. 查看从服务器状态
show slave status\G;

下面两个参数都是Yes,则说明主从配置成功! - Slave_IO_Running: Yes - Slave_SQL_Running: Yes 接下来就可以去M1主机新建库、建表等测试了,观察M2从机服务是否会跟着改变 如何停止从服务复制功能

stop slave;

如果需要重新配置,需要先停止,然后重置

stop slave;

重置

reset master;

注意事项

如果使用Mysql的主从复制,需要考虑的问题,比如如何持续保证数据一直问题,就比如一旦主从关系断开之后,再次建立主从,比如可以写脚本去监控Mysql服务等等