准备: 两个服务器分别安装好mysql
主机配置
#[必须]主服务器唯一ID
server-id=1
#[必须]启用二进制日志,指名路径。比如:自己本地的路径/var/lib/mysql/binlog.000001;
log-bin=binlog
# 0(默认)表示读写(主机),1表示只读(从机)
read-only=0
#设置日志文件保留的时长,单位是秒
binlog_expire_logs_seconds=6000
#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M
#设置不要复制的数据库
binlog-ignore-db=test
#设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
binlog-do-db=需要复制的主数据库名字
#设置binlog格式
binlog_format=STATEMENT
从机配置
server-id=2
#启用中继日志
relay-log=mysql-relay
查看防火墙状态
systemctl stop firewalld
主机建立账号并授权
#5.7版本、
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'从机器数据库IP' IDENTIFIED BY 'abc123';
#8.0版本
CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';
ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
查看主机状态
show master status ;
配置需要复制的主机
CHANGE MASTER TO
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;
#启动slave同步
start slave;
#查看同步状态
SHOW SLAVE STATUS\G;
#如果下面两个值都是yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则配置成功
停止主从同步
stop slave;
#如果停止从服务器复制功能,再使用需要重新配置主从
reset master; #删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)