首先配置主库的server-id、log-bin和binlog-format等参数,创建复制用户并记录二进制日志位置;然后配置从库的server-id、relay-log等参数,设置只读模式,并使用CHANGE REPLICATION SOURCE TO命令连接主库启动复制;最后通过SHOW REPLICA STATUS检查复制状态,确保IO和SQL线程正常运行,无错误且延迟较低;需注意时间同步、防火墙、字符集一致性和避免从库写入等问题。

在 MySQL 中配置复制功能,主要是通过设置主库(Master)和从库(Slave/Replica)的相关参数来实现数据的同步。以下是关键步骤和需要配置的参数说明,适用于基于二进制日志(Binary Log)的传统主从复制。
1. 配置主库(Master)
要启用主库的复制功能,需在主库的配置文件 my.cnf 或 my.ini 中添加以下参数:
-
server-id:为每个 MySQL 实例设置唯一 ID,主库通常设为 1。
server-id = 1 -
log-bin:启用二进制日志,并指定日志文件前缀。
log-bin = mysql-bin -
binlog-format:推荐使用 ROW 格式以提高复制准确性。
binlog-format = row -
binlog-do-db(可选):指定需要记录二进制日志的数据库,多个库需重复设置或使用脚本控制。
binlog-do-db = your_database_name -
expire-logs-days(可选):自动清理过期的 binlog 文件。
expire-logs-days = 7
配置完成后重启 MySQL 服务,并创建用于复制的账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
查看主库当前的二进制日志状态,以便从库连接时使用:
SHOW MASTER STATUS;记下返回结果中的 File 和 Position 值。
2. 配置从库(Slave)
在从库的配置文件中也需要设置唯一 ID 并可选择性启用中继日志:
免费 盛世企业网站管理系统(SnSee)系统完全免费使用,无任何功能模块使用限制,在使用过程中如遇到相关问题可以去官方论坛参与讨论。开源 系统Web代码完全开源,在您使用过程中可以根据自已实际情况加以调整或修改,完全可以满足您的需求。强大且灵活 独创的多语言功能,可以直接在后台自由设定语言版本,其语言版本不限数量,可根据自已需要进行任意设置;系统各模块可在后台自由设置及开启;强大且适用的后台管理支
-
server-id:必须与主库不同,例如设为 2。
server-id = 2 -
relay-log(可选):自定义中继日志名称。
relay-log = mysql-relay-bin -
log-slave-updates(可选):如果该从库还要作为其他实例的主库,需开启此选项。
log-slave-updates = 1 -
read-only(建议):防止从库被误写入。
read-only = 1
重启从库 MySQL 服务后,执行命令连接到主库:
CHANGE REPLICATION SOURCE TOSOURCE_HOST='master_ip',
SOURCE_USER='repl',
SOURCE_PASSWORD='your_password',
SOURCE_LOG_FILE='mysql-bin.000001',
SOURCE_LOG_POS=154;
START REPLICA;
注意:MySQL 8.0.23 之后使用 CHANGE REPLICATION SOURCE TO,旧版本使用 CHANGE MASTER TO。
3. 检查复制状态
运行以下命令查看从库是否正常工作:
SHOW REPLICA STATUS\G重点关注以下字段:
- Replica_IO_Running 和 Replica_SQL_Running 应为 Yes
- Last_Error 应为空
- Seconds_Behind_Master 显示延迟时间
4. 常见注意事项
基本上就这些。只要主从配置正确、网络通畅、权限到位,MySQL 复制就能稳定运行。对于生产环境,建议结合监控工具进行持续观察。









