MySQL主从同步不是通过客户端安装就能实现的,它需要在数据库服务器层面进行配置。如果你已经安装了MySQL客户端,但想设置主从复制(Master-Slave Replication),你需要有至少两台MySQL服务器:一台作为主服务器(Master),一台作为从服务器(Slave)。以下是详细的配置方法。
1. 主服务器(Master)配置
要启用主从同步,首先在主服务器上进行以下设置:
编辑配置文件 my.cnf 或 my.ini(Linux通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf):[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
expire_logs_days = 7
sudo systemctl restart mysql
创建用于复制的账号,登录MySQL执行:CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
记下 File 和 Position 的值,后续从服务器会用到。
2. 从服务器(Slave)配置
在从服务器上进行如下操作:
编辑 my.cnf 配置文件:[mysqld]
server-id = 2
relay-log = mysql-relay-bin
log-slave-updates = 1
read-only = 1
sudo systemctl restart mysql
配置从库连接主库,进入MySQL命令行:CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
注意:MASTER_LOG_FILE 和 MASTER_LOG_POS 使用主库 SHOW MASTER STATUS 输出的实际值。
启动从库复制线程:START SLAVE;
3. 检查主从同步状态
在从服务器上执行以下命令查看复制是否正常运行:
SHOW SLAVE STATUS\G
重点关注以下两个字段:
Slave_IO_Running: 应为 Yes Slave_SQL_Running: 应为 Yes如果有错误,可查看 Last_Error 字段排查问题,常见问题包括网络不通、账号权限不足、日志位置不匹配等。
4. 测试主从同步效果
在主服务器上创建数据库或表并插入数据:
CREATE DATABASE test_rep;
USE test_rep;
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1);
然后登录从服务器,执行:
SHOW DATABASES;
SELECT * FROM test_rep.t1;
如果能看到数据,说明主从同步成功。
基本上就这些。主从同步配置的关键在于确保主从 server-id 唯一、主库开启 binlog、复制账号权限正确,并且从库能连通主库。只要步骤清晰,配置并不复杂,但容易忽略细节导致失败。
