MySQL同步复制能将一个数据库服务器(主库)的数据自动复制到另一个数据库服务器(从库),常用于数据备份、读写分离和高可用架构。配置过程需要主从两台MySQL服务器,以下是具体操作步骤。
1. 配置主库(Master)
要启用主从复制,首先在主库的配置文件中开启二进制日志并设置唯一的server-id。
编辑MySQL配置文件(通常为/etc/my.cnf或
/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
systemctl restart mysql
登录MySQL,创建用于复制的专用账户:CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
2. 配置从库(Slave)
从库也需要设置唯一的server-id,并指定连接主库的信息。
编辑从库的MySQL配置文件:[mysqld]
server-id = 2
systemctl restart mysql
进入MySQL,执行CHANGE MASTER命令,填入主库信息: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;
3. 检查复制状态
配置完成后,需确认复制是否正常运行。
在从库执行以下命令查看状态:SHOW SLAVE STATUS\G
重点关注两个字段:Slave_IO_Running: Yes
Slave_SQL_Running: Yes
4. 注意事项与常见问题
确保整个过程稳定可靠,需要注意以下几点:
主从服务器时间应尽量同步,建议使用NTP服务。 server-id在整个复制集群中必须唯一。 如果主库已有数据,建议先通过mysqldump导出数据并导入从库,再开始复制。 防火墙需开放主库的3306端口,允许从库访问。 定期检查Seconds_Behind_Master判断延迟情况。
基本上就这些。只要配置正确,MySQL主从同步可以稳定运行,为应用提供更可靠的数据支持。
