MySQL客户端安装后本身并不直接处理数据复制,数据复制是MySQL服务器之间的功能,通常由主从架构实现。如果你希望配置MySQL的数据复制(主从复制),需要在至少两台MySQL服务器上进行设置:一台作为主服务器(Master),另一台作为从服务器(Slave)。下面是一个清晰的配置流程。
1. 确保主从服务器环境准备就绪
确认主服务器和从服务器都已安装MySQL服务,并可以正常启动。建议版本一致或兼容,避免因版本差异导致复制异常。
主服务器和从服务器网络互通,能通过IP互相访问 确保防火墙开放了MySQL端口(默认3306) 主从服务器的server-id必须唯一,不能重复2. 配置主服务器(Master)
编辑主服务器的MySQL配置文件 my.cnf 或 my.ini(Linux通常位于 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld] server-id = 1 log-bin = mysql-bin binlog-format = ROW expire-logs-days = 7 max-binlog-size = 100M
保存并重启MySQL服务:
sudo systemctl restart mysql登录MySQL创建用于复制的账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
3. 配置从服务器(Slave)
修改从服务器的配置文件,设置唯一的 server-id:
[mysqld] server-id = 2
重启从服务器MySQL服务:
sudo systemctl restart mysql获取主服务器当前二进制日志位置:
在主服务器执行:
SHOW MASTER STATUS;记下 File 和 Position 的值,例如:
File: mysql-bin.000003 Position: 154
在从服务器上配置主从连接信息:
CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154;
启动复制:
START SLAVE;4. 检查复制状态
在从服务器执行:
SHOW SLAVE STATUS\G重点关注以下两个字段:
Slave_IO_Running: 应为 Yes Slave_SQL_Running: 应为 Yes如果任一为 No,请查看 Last_Error 字段排查问题,常见原因包括网络不通、账号权限不足、server-id冲突等。
可以通过在主库创建数据库或表来测试是否同步到从库。
基本上就这些。配置成功后,主库的写操作会自动同步到从库。注意定期监控复制延迟和错误日志,确保稳定性。
