MySQL异步复制是一种常见的主从数据同步方式,通过配置主库(Master)和从库(Slave),实现数据的自动备份、读写分离和高可用。以下是完整的异步复制配置方法。
1. 配置主库(Master)
要启用主库的复制功能,需在主库的配置文件中设置相关参数。
编辑 MySQL 配置文件 my.cnf(Linux 通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf) 在 [mysqld] 段添加以下内容:server-id = 1
log-bin = mysql-bin
binlog-format = ROW
expire_logs_days = 7
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
2. 配置从库(Slave)
从库需要知道主库的位置和认证信息,才能开始复制。
编辑从库的 my.cnf 文件,在 [mysqld] 中添加:server-id = 2
relay-log = mysql-relay-bin
log-slave-updates = 1
read-only = 1
CHANGE MASTER TO
MASTER_HOST='主库IP地址',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
3. 验证复制状态
配置完成后,检查从库是否正常同步。
SHOW SLAVE STATUS\G
重点关注以下两个字段: Slave_IO_Running: Yes Slave_SQL_Running: Yes 若均为 Yes,表示复制正常运行 若出现错误,可查看 Last_Error 字段排查原因4. 注意事项与常见问题
主从服务器时间应保持一致,避免同步异常 server-id 在集群中必须唯一,不能重复 首次配置建议对主库进行锁表或停机导出,确保数据一致性 可通过 mysqldump 导出主库数据并导入从库作为初始同步手段 防火墙需开放主库 3306 端口,允许从库访问基本上就这些,配置成功后,主库的所有更新操作会自动异步写入从库。虽然存在延迟可能,但异步复制简单高效,适合大多数业务场景。
