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 为从库创建用于复制的用户,并赋权
- 创建用户
CREATE USER 'repl@12'@'192.168.91.12' IDENTIFIED BY 'Repl123.';
- 为用户赋权
GRANt REPLICATION SLAVE ON *.* TO 'repl@12'@'192.168.91.12';
- 刷新权限
flush privileges;
4 查看主库状态
SHOW MASTER STATUS;
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,则表示主从复制搭建成功
如果出现 Slave_IO_Running: Connecting,可能是主库的防火墙未关闭,需要关闭主库的防火墙,或者开放MySQL服务的端口
如果出现 下面的错误,原因是克隆了服务器,两台MySQL服务的uuid重复了,解决方案只需要把从库的auto.cnf删除,然后重启MySQL服务即可
1.进入MySQL数据目录
cd /var/lib/mysql
2 删除auto.cnf;
rm -rf auto.cnf
3 重启MySQL服务
systemctl restart mysqld