MySQL主从复制搭建完整教程:从零开始配置数据库同步方案
MySQL主从复制是一种成熟的数据库架构方案,通过将主数据库的变更实时同步到一台或多台从数据库,实现数据的冗余备份和读写分离。这种架构既能提升系统的高可用性,又能有效分散数据库的读取压力。
一、搭建前的准备工作
在正式开始配置之前,需要确认以下几点基础条件已经满足:
- 主从服务器均已安装MySQL数据库,且版本保持一致
- 两台服务器网络互通,能够相互访问
- MySQL服务已完成初始化并正常启动
- 具备管理员权限,可以修改配置文件
二、主服务器配置步骤
1. 修改主服务器配置文件
登录主服务器,使用文本编辑器打开MySQL配置文件,通常位于/etc/my.cnf或/etc/mysql/my.cnf。
在[mysqld]配置段中添加以下两行关键参数:
log-bin=mysql-bin
server-id=222参数说明:
- log-bin用于开启二进制日志功能,这是主从复制的核心,所有数据变更都会记录到这个日志文件中
- server-id为服务器分配一个唯一标识,建议使用IP地址的最后一段数字,方便记忆和管理
2. 重启主服务器MySQL服务
保存配置文件后,执行以下命令使配置生效:
systemctl restart mysqld或者使用service命令:
service mysqld restart三、从服务器配置步骤
1. 修改从服务器配置文件
登录从服务器,同样编辑MySQL配置文件,在[mysqld]段中添加:
log-bin=mysql-bin
server-id=226需要注意的是,从服务器的server-id必须与主服务器不同,否则会导致冲突。如果从服务器有多个实例,每个实例的server-id也必须是唯一的。
2. 重启从服务器MySQL服务
同样执行重启命令让配置生效:
systemctl restart mysqld四、在主服务器上创建复制账户
登录主服务器的MySQL命令行界面,执行授权语句创建一个专门用于复制的数据库账户:
GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;操作要点:
- 建议使用专用账户而非root账户,提高安全性
- 可以将百分号替换为从服务器的具体IP地址,限制只有指定IP才能连接
- 密码请设置为强度较高的组合,避免被破解
五、获取主服务器当前状态
这一步非常关键,需要在主服务器上执行以下命令:
SHOW MASTER STATUS;执行后会看到类似这样的输出结果:
File | Position |
|---|---|
mysql-bin.000004 | 308 |
请务必记下File和Position这两个数值,后续配置从服务器时需要用到。特别提醒:执行完这个命令后,不要再对主库进行任何写入操作,否则这两个数值会发生变化,导致后续配置失败。
六、配置从服务器连接主服务器
登录从服务器的MySQL命令行界面,执行以下命令建立与主服务器的连接关系:
CHANGE MASTER TO
MASTER_HOST='192.168.145.222',
MASTER_USER='mysync',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=308;参数说明:
- MASTER_HOST填写主服务器的IP地址
- MASTER_USER和MASTER_PASSWORD使用刚才创建的复制账户信息
- MASTER_LOG_FILE和MASTER_LOG_POS必须与主服务器上记录的数值完全一致
配置完成后,启动复制进程:
START SLAVE;七、验证同步状态是否正常
最后一步是检查复制是否成功运行,执行以下命令:
SHOW SLAVE STATUS\G;在输出的众多参数中,重点关注两个关键线程的状态:
- Slave_IO_Running: 必须显示为Yes,表示IO线程正常连接主服务器并读取二进制日志
- Slave_SQL_Running: 必须显示为Yes,表示SQL线程正常执行从主服务器接收到的更新操作
此外,还可以观察Master_Log_File和Read_Master_Log_Pos两个字段是否在持续更新,这表示数据正在正常同步。
八、常见问题排查指南
如果发现Slave_IO_Running或Slave_SQL_Running显示为No,可以尝试以下排查方法:
- 检查主从服务器之间的网络连通性
- 确认复制账户的权限是否正确授予
- 核对CHANGE MASTER语句中的参数是否与主服务器状态一致
- 查看MySQL错误日志获取详细报错信息
九、总结与运维建议
至此,MySQL主从复制环境已经搭建完成。在实际生产环境中,还需要注意以下几点:
- 定期监控两个关键线程的运行状态
- 为主从服务器分别做好数据备份
- 考虑增加半同步复制来提升数据一致性
- 根据业务负载合理规划从服务器的数量
掌握了这套配置方法,就能轻松构建起高可用的数据库架构,为业务系统的稳定运行打下坚实基础。