主从同步需配置主库binlog和server-id,创建复制用户,从库设置server-id并执行CHANGE MASTER TO,最后用START SLAVE启动复制,确保Slave_IO和Slave_SQL为Yes。

在 MySQL 主从同步配置中,启动命令本身并不直接完成主从设置,而是通过配置文件和 SQL 命令配合实现。主从同步的“启动”实际上是配置好主库和从库后,使用 START SLAVE 命令开启复制进程。以下是完整的主从同步配置流程。
1. 主库(Master)配置
要启用主从同步,首先要确保主库已开启二进制日志(binary log)并设置唯一的 server-id。
- 编辑主库配置文件(通常是 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
- 重启 MySQL 服务使配置生效:
systemctl restart mysql - 登录 MySQL 创建用于复制的账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
- 查看主库状态,记录 File 和 Position 值:
SHOW MASTER STATUS;
2. 从库(Slave)配置
从库也需要设置唯一的 server-id,并建议开启 relay-log。
- 编辑从库配置文件:
[mysqld]
server-id = 2
relay-log = mysql-relay-bin
- 重启从库 MySQL:
systemctl restart mysql - 登录 MySQL,执行 CHANGE MASTER TO 命令连接主库:
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 154;
3. 启动从库复制进程
配置完成后,使用以下命令启动主从同步:
START SLAVE;
- 查看从库复制状态:
SHOW SLAVE STATUS\G
检查以下两个关键字段是否为 Yes:- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
4. 常见问题处理
- 若出现错误,可先停止复制:
STOP SLAVE; - 修正配置或位置后重新执行 CHANGE MASTER TO 并再次启动。
- 确保主从数据库初始数据一致,可通过 mysqldump 导出主库数据导入从库。
例如导出主库数据:
mysqldump -u root -p --all-databases --master-data > backup.sql
然后将 backup.sql 导入从库,再开始配置复制。
基本上就这些。主从同步不是靠一条“启动命令”完成的,而是配置 + 授权 + 启动复制线程的组合操作。关键是正确设置 server-id、开启 binlog、创建复制用户,并使用 START SLAVE 激活同步。不复杂但容易忽略细节。










