
MySQL主从复制是一种常见的数据库架构方式,能够实现数据的实时备份、读写分离和高可用性。配置主从复制并不复杂,但需要确保主库和从库之间的网络通畅,并正确设置相关参数。以下是详细的配置步骤。
1. 主库(Master)配置
要开启主从复制,首先需要在主数据库服务器上进行配置,启用二进制日志并设置唯一的服务器ID。
编辑MySQL配置文件:通常位于/etc/my.cnf或
/etc/mysql/mysql.conf.d/mysqld.cnf,添加以下内容:
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
sudo systemctl restart mysql
创建用于复制的用户:在主库中创建一个专供从库连接的复制账号:mysql -u root -p
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
2. 从库(Slave)配置
从库也需要设置唯一的 server-id,并可选择是否开启中继日志。
修改从库配置文件,添加以下内容(注意 server-id 不能与主库重复):
[mysqld]
server-id = 2
relay-log = mysql-relay-bin
sudo systemctl restart mysql
3. 获取主库二进制日志位置并启动复制
在主库上查看当前的二进制日志状态,以便从库从中同步数据。
查询主库状态:SHOW MASTER STATUS;
记录输出中的
File和
Position值,例如:
File: mysql-bin.000001
Position: 154 在从库上配置主库连接信息:
CHANGE MASTER TO
MASTER_HOST='主库IP地址',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
4. 验证复制状态
在从库上执行以下命令检查复制是否正常运行:
SHOW SLAVE STATUS\G
重点关注以下两个字段:
Slave_IO_Running: 应为 Yes Slave_SQL_Running: 应为 Yes如果这两个值都为 Yes,说明主从复制已成功启动。如果有错误,可根据 Last_Error 信息排查问题。
基本上就这些。只要网络通、权限对、配置一致,MySQL主从复制就能稳定运行。建议初期在测试环境操作熟练后再应用到生产环境。
