一、 环境准备与前置检查
两台服务器(或虚拟机)均安装 MySQL 5.7,版本建议保持一致。
确保主从库之间 3306 端口互通(关闭防火墙或放行端口)。
如果是克隆的虚拟机,务必检查 /var/lib/mysql/auto.cnf中的 server-uuid,主从不能相同,相同需修改后重启。
二、 主库(Master)配置
1.修改配置文件(/etc/my.cnf或 my.ini),在 [mysqld]下添加:
server-id=1 # 唯一的ID,主从不能重复
log-bin=mysql-bin # 开启二进制日志
binlog_format=ROW # 推荐ROW格式
expire_logs_days=7 # 可选:binlog保留天数
2.保存后重启 MySQL:
systemctl restart mysqld
3.创建用于主从同步的专用用户(登录 MySQL 执行):
(若方便测试也可用 ‘repl’@‘%’,生产环境建议限定IP)。
CREATE USER 'repl'@'从库IP' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP';
FLUSH PRIVILEGES;
4.查看主库 binlog 状态并记录关键信息:
SHOW MASTER STATUS;
记下输出的 File(如 mysql-bin.000001)和 Position(如 154),从库配置时必须用。
如果主库已有数据,需先用 mysqldump全量导出,并在从库导入,保证两边数据起点一致后再做同步。
三、 从库(Slave)配置
1.修改从库配置文件(/etc/my.cnf),在 [mysqld]下添加:
server-id=2 # 不同于主库的ID
relay-log=mysql-relay-bin # 开启中继日志(可选但建议)
read_only=1 # 生产环境建议设为只读(超级权限账号仍可写)
2.保存后重启 MySQL:
systemctl restart mysqld
3.在从库 MySQL 中执行关联主库命令:
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='mysql-bin.000001', -- 主库SHOW MASTER STATUS查到的File
MASTER_LOG_POS=154; -- 主库SHOW MASTER STATUS查到的Position
4.启动从库复制线程:
START SLAVE;
四、 验证主从同步状态
1.在从库 MySQL 中执行:
SHOW SLAVE STATUS
重点查看两个字段:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
两个都为 Yes,说明主从同步正常。此后在主库建库、建表、插数据,从库会自动同步。
五、开启、关闭主从
以下命令在从库执行
1.开启
开启后会从上个断点开始同步一次
START SLAVE;
2.关闭
STOP SLAVE;
如你还需要:一主多从、主从扩产读写分离、或常见同步异常处理(如 UUID 冲突/位置点错误)

4898

被折叠的 条评论
为什么被折叠?



