Linux云服务器搭建MySQL主从复制完整指南
数据库主从复制是企业级应用中常见的高可用解决方案,本文将详细介绍如何在Linux云服务器上搭建MySQL主从复制环境。通过本教程,您将掌握从环境准备到最终配置验证的全过程。
一、准备工作
- 服务器准备:至少两台Linux云服务器(推荐CentOS 7+/Ubuntu 18.04+)
- 网络配置:确保主从服务器间网络互通,开放3306端口
- MySQL安装:所有节点安装相同版本的MySQL(建议5.7+)
二、主服务器配置
修改my.cnf配置文件:
[mysqld] server-id = 1 log_bin = mysql-bin binlog_format = ROW binlog-do-db = 需要复制的数据库名
重启MySQL服务并创建复制账号:
systemctl restart mysqld mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
三、从服务器配置
修改my.cnf配置文件:
[mysqld] server-id = 2 relay-log = mysql-relay-bin read_only = 1
获取主服务器binlog位置并配置复制:
mysql> CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=位置值;
四、验证与排错
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 主服务器状态 | SHOW MASTER STATUS | 显示当前binlog信息 |
| 从服务器状态 | SHOW SLAVE STATUS\G | Slave_IO_Running和Slave_SQL_Running都为Yes |
五、常见问题解决方案
- 连接失败:检查防火墙设置和网络连通性
- 复制延迟:优化查询,考虑使用GTID复制
- 数据不一致:使用pt-table-checksum工具检查差异
最佳实践建议
1. 生产环境建议配置GTID复制模式
2. 定期监控复制延迟
3. 重要操作前做好数据备份
4. 考虑使用中间件如ProxySQL实现读写分离
