主从复制通过binlog实现数据同步,主库记录变更到binlog,从库重放日志实现冗余。配置需设置server-id、启用binlog、创建复制用户并执行CHANGE MASTER,最后验证Slave_IO_Running和Slave_SQL_Running状态为Yes,确保数据一致性与高可用。

在 MySQL 中,使用复制(Replication)实现数据冗余是一种常见且高效的高可用方案。通过主从复制,你可以将一台数据库服务器(主库)的数据自动同步到一台或多台从库上,从而实现数据冗余、读写分离和故障恢复能力。
MySQL 复制基于二进制日志(binary log)。主库记录所有数据变更操作到 binlog,从库通过 I/O 线程读取主库的 binlog,并写入自己的中继日志(relay log),再由 SQL 线程重放这些日志,实现数据同步。
主要组件包括:
以下是在两台服务器之间配置主从复制的关键步骤。
1. 配置主库(Master)
编辑主库的 my.cnf 或 my.ini 配置文件:
[mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW expire_logs_days=7
重启 MySQL 服务后,创建用于复制的账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
查看主库状态,获取当前 binlog 文件名和位置:
SHOW MASTER STATUS;
2. 配置从库(Slave)
修改从库配置文件:
[mysqld] server-id=2 relay-log=mysql-relay-bin log-slave-updates=1 read-only=1
重启从库 MySQL 服务。然后执行 CHANGE MASTER 命令连接主库:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', -- 来自 SHOW MASTER STATUS MASTER_LOG_POS=154; -- 来自 SHOW MASTER STATUS <p>START SLAVE;</p>
3. 验证复制状态
运行以下命令检查从库是否正常同步:
SHOW SLAVE STATUS\G
重点关注两个字段:
如果都是 Yes,说明复制已正常运行。如果有错误,可根据 Last_Error 字段排查问题。
为了确保复制真正起到数据冗余的作用,需要注意以下几点:
基本上就这些。只要正确配置并持续监控,MySQL 主从复制就能有效实现数据冗余,提升系统稳定性和容灾能力。
以上就是如何在mysql中使用复制实现数据冗余的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号