Linux 下 MySQL 主从同步配置实战指南
配置 MySQL 主从同步是实现数据冗余、读写分离及灾难恢复的基础手段。本教程基于 Linux 系统,通过创建专用同步账户、调整 mysqld 配置文件以开启二进制日志、锁定主库获取同步位点,并在从库指定主库信息进行连接验证。当从库状态显示两个关键线程均运行正常时,即代表配置成功。
准备工作与概念说明
数据库同步主要分为“主从同步”(Master-Slave,单向写入复制)和“主主同步”(Master-Master,双向互写)。本节仅演示最常用且结构稳定的主从同步方案。假设环境如下:
- 主数据库 (A):IP
192.168.1.134,负责接收写操作并记录日志。 - 从数据库 (B):IP
192.168.1.138,通过读取主库日志回放数据以保持一致。 - 同步账号:用户名
bravedu,密码brave123。
第一阶段:主数据库(Master)设置
第1步:创建专用同步用户
目的:确保从库有一个安全的账户用于拉取二进制日志,而非使用 root 等高权限账号。
入口:登录主库 A 的 MySQL 命令行客户端。
操作:授予 replication slave 权限,允许来自特定网段的连接。
grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123';
flush privileges;
第2步:修改 MySQL 配置文件
目的:启用二进制日志功能并设定唯一的服务器 ID,这是同步的核心机制。
入口:编辑主库配置文件 /etc/my.cnf(或安装路径下的 my.ini / mysqld.cnf)。
参数说明:
- server-id:唯一标识符,必须大于 0 且不能与从库重复。
- log-bin:开启二进制日志,路径需根据实际安装目录调整。
- binlog-do-db:指定需要同步的数据库名(可选,若省略则同步所有非忽略库)。
- binlog-ignore-db:指定不同步的系统库(如 mysql)。
[mysqld]
server-id = 1
log-bin=/www/mysql/binlog/binlog
binlog-do-db = dbname
binlog-ignore-db=mysql
动作:修改保存后,重启 MySQL 服务使配置生效。
第3步:锁定主库并获取同步位点
目的:在不停服的情况下获取一个时间点上的数据快照基线(File 和 Position)。
风险提醒:FLUSH TABLES WITH READ LOCK 会锁定所有表的写操作,生产环境请在低峰期操作。
操作顺序:
- 加锁:
mysql> FLUSH TABLES WITH READ LOCK; - 查看状态:
mysql> SHOW MASTER STATUS\G;
可观察结果:记录 File 列的值(例如 mysql-bin.000001)和 Position 列的值(例如 106)。这两个值将用于配置从库。
- 解锁:
mysql> UNLOCK TABLES;
第二阶段:从数据库(Slave)设置
第4步:创建同步用户(如需)
目的:部分严格的安全规范要求从库本地也建立对应的只读/复制用户。
操作:在主库已执行的基础上,若需独立管理,可在从库 B 执行相同授权语句:
grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123';
flush privileges;
第5步:修改从库配置文件
目的:避免与主库 ID 冲突,并配置相应的日志策略。
入口:编辑从库配置文件 /etc/my.cnf。
操作:设置不同的 server-id 并开启日志。
[mysqld]
server-id = 2
log-bin=/www/mysql/binlog/binlog
binlog-do-db = dbname
binlog-ignore-db=mysql,information_schema
动作:保存文件并重启 MySQL 服务。
第6步:指定主从连接关系
目的:告诉从库如何找到主库,以及从哪个日志位点开始同步。
入口:登录从库 B 的 MySQL 客户端。
重要参数:
- master_host:主库 IP(192.168.1.134)。
- master_log_file & master_log_pos:必须在第一步中记录的 File 和 Position 值。
- 停止现有同步**(如有)**:
STOP SLAVE; - 配置连接**:
CHANGE MASTER TO master_host='192.168.1.134', master_user='bravedu', master_password='brave123', master_log_file='mysql-bin.000001', master_log_pos=106; - 启动同步****:
START SLAVE;
第三阶段:验证与排错
第7步:检查同步状态
目的:确认主从链路是否通畅,数据是否在自动流转。
操作:在从库执行以下命令:
SHOW SLAVE STATUS\G;
核心指标:关注返回结果中的两行:
- Slave_IO_Running: Yes(负责读取主库日志)
- Slave_SQL_Running: Yes(负责在本地回放 SQL)
若这两项均为 Yes,且 Last_Error 为空,则说明配置成功。若出现 No,通常需检查网络连通性、权限是否正确,或检查主库提供的日志位置是否过期/错误。
简要总结
MySQL 主从同步依赖于二进制的日志传输与回放机制。配置的关键在于:主库开启 binlog 并分配唯一 ID;从库配置正确的连接参数指向主库的日志位点;最后通过 IO 和 SQL 线程的状态来验证健康度。正确实施上述步骤后,即可实现数据库的实时热备。
以上就是 Linux 下指定 MySQL 数据库服务器主从同步配置的详细内容,更多关于 MySQL 主从架构搭建与优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









