在Linux环境下配置数据库主从复制,通常以MySQL为示例。主从复制可以让主库的数据变更自动同步到一个或多个从库,常用于数据冗余、负载均衡和故障切换。下面以两台Linux服务器为例,介绍基于MySQL 8.0的配置过程。

一、环境准备
假设主库IP为192.168.0.1,从库IP为192.168.0.2,两台机器均已安装相同大版本的MySQL,且防火墙放行3306端口。
二、配置主库
1. 修改主库配置文件
编辑主库MySQL配置文件(如 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),添加以下配置:
[mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW
重启主库服务使配置生效:
systemctl restart mysqld
2. 创建同步账号并获取状态
登录主库MySQL,创建用于从库连接的账号并授权:
CREATE USER 'repl'@'192.168.0.2' IDENTIFIED BY 'password123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.2'; FLUSH PRIVILEGES;
查看主库二进制日志状态,记录 File 与 Position 值:
SHOW MASTER STATUS;
三、配置从库
1. 修改从库配置文件
在从库配置文件中设置唯一 server-id:
[mysqld] server-id=2 relay-log=relay-bin
重启从库服务:
systemctl restart mysqld
2. 指向主库并启动复制
登录从库MySQL,执行变更主库命令,注意将对应值替换为实际信息:
CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_USER='repl', MASTER_PASSWORD='password123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; START SLAVE;
使用如下命令检查从库状态:
SHOW SLAVE STATUSG
当 Slave_IO_Running 与 Slave_SQL_Running 均为 Yes 时,主从复制配置成功。
四、常见问题与排查
- 连接失败:检查主从IP是否互通、MySQL账号权限及防火墙设置。
- 主从延迟:从库硬件性能不足或主库大事务会导致延迟,可优化SQL或升级配置。
- 数据不一致:避免直接在从库写入数据,必要时使用 pt-table-checksum 工具校验。
注意在正文配置中提到的 <input> 标签仅作说明示例,实际配置不使用该标签,相关参数通过配置文件与SQL语句设置。
五、小结
在Linux上配置数据库主从复制并不复杂,核心在于正确设置 server-id、开启二进制日志以及准确填写从库指向主库的信息。按照上述步骤操作,即可搭建稳定的MySQL主从同步环境。