flush tables with read lock;#添加读锁
UNLOCK TABLES;#解锁
1、主库配置
server-id=1
read-only=0
log-bin=mysql-bin
#忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog do-db=db01
2、配置完后重启
systemctl restart XXX
3、创建远程连接账号,分配权限
CREATE USER ‘用户名’@’地址’ IDENTIFIED WITH mysql\_native\_password BY ‘密码’ GRANT PEPLICATION SLAVE ON *.* TO ‘用户名’@’地址’
查看
SHOW GRANTS FOR '用户名'@'地址'; select user,host from user;
4、查看日志坐标
show master status;
#file : 从哪个日志文件开始推送日志文件
#position : 从哪个位置开始唯送日志
#binlog_ignore_db : 指定不需要同步的数据库
5、从库配置
server-id = 2 # 服务器唯一标识,不能与主服务器相同
relay-log = mysql-relay-bin # 启用中继日志
read-only=1
6、 配置完后重启
systemctl restart XXX
7、设置主数据库信息
CHANGE MASTER TO
MASTER_HOST='master\_host\_ip',
MASTER_PORT=13306,
MASTER_USER='replication\_user',
MASTER_PASSWORD='replication\_password',
MASTER_LOG_FILE='mysql-bin.000001', # 主服务器二进制日志文件
MASTER_LOG_POS=1117; # 日志位置,通常为0,除非有特定位置
7、开始复制
START SLAVE;
# STOP SLAVE;# 停止复制
8、验证复制状态
SHOW SLAVE STATUS\G
#如果Slave_IO_Running和Slave_SQL_Running都显示为"Yes",则表示复制正在正常运行。
9、从库宕机处理
查看error日志中的pos,重新设置主数据库信息然后开始复制。