1. 规划与准备工作
在进入 MySQL 启动命令如何配置主从同步 的完整主从同步启动配置教程 的核心步骤前,必须完成环境与拓扑的规划。明确主从关系、版本一致性、网络连通性以及备份策略,是确保后续步骤顺利执行的基础。
版本核对与拓扑确认是第一步,确保主从版本在支持主从复制的范围内,且网络端口对互通开放。为避免冲突,请记录两端的主机名或 IP、端口与时区信息。以下为检查命令示例,用于确认环境就绪:
# 检查 MySQL 版本
mysql --version# 查看当前时区信息(可选)
ps aux | grep mysqld | head -n 1
1.1 版本与拓扑确认
在本节中,明确两台服务器的唯一性与互联性是关键。两端服务器应具有不同的 server-id,且主机名或 IP 必须稳定。下面的要点需要在开始启动之前就执行:确认防火墙策略、是否开启了二进制日志(log_bin)、以及是否准备好用于复制的账户。
若要快速验证复制相关的全局变量,请在 MySQL 客户端执行相应检查。以下命令用于快速确认复制相关配置项是否可用:log_bin、server_id、read_only等。
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'server_id';
SHOW VARIABLES LIKE 'read_only';
1.2 主从关键配置要点
主服务器配置是整套同步的核心,必须在 my.cnf 中设定关键参数,如 server-id、log_bin、binlog_format 等,才能产生日志并提供给从服务器消费。

下面给出一个典型的主服务器 my.cnf 配置片段,供参考。请以实际环境的 IP、目录路径与权限为准:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = row
gtid_mode = on
enforce_gtid_consistency = true
log_slave_updates = true
expire_logs_days = 7
1.3 从服务器准备要点
从服务器的配置需要确保能正确解析主服务器的日志位置,并具备足够的权限建立连接。从服务器也应设置唯一的 server-id,且要开启中继日志相关项(relay_log、relay_log_index 等)。
下面给出从服务器的一个常见 my.cnf 配置片段,展示需要关注的参数:server-id、relay_log、read_only等:
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
relay_log_index = /var/log/mysql/mysql-relay-bin.index
log_bin = /var/log/mysql/mysql-bin.log # 可选,若从服务器也需要二进制日志
read_only = true
skip_slave_start = true
2. 主服务器的启动与配置命令
在完成前期准备后,接下来进入对主服务器的启动与配置命令阶段,确保主服务器能够正常产生并提供二进制日志供从服务器读取。启动服务、验证日志开启状态、并创建复制账户是关键操作。
2.1 启动服务与基础验证
先启动并设定开机自启,然后验证二进制日志是否开启,以及网络连通性是否正常。若你使用 systemd 管理服务,请执行以下命令:systemctl start mysqld、systemctl enable mysqld,并用以下命令确认日志是否可用:
# 启动并启用自启动
sudo systemctl start mysqld
sudo systemctl enable mysqld# 验证 MySQL 是否在运行
sudo systemctl status mysqld# 检查 log_bin 是否开启
mysql -u root -p -e "SHOW VARIABLES LIKE 'log_bin';"
2.2 创建复制账户与权限
为了让从服务器能够安全地读取主服务器的日志,需在主服务器上创建专用的复制账户,并赋予 REPLICATION SLAVE 权限。以下 SQL 示例演示了创建账户与权限的过程:GRANT REPLICATION SLAVE、FLUSH PRIVILEGES。
CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
2.3 记录主日志坐标
在开始从服务器之前,需要记录主服务器当前的日志文件名与位置,以便从服务器能够从正确的位置开始复制。请在主服务器执行以下命令:SHOW MASTER STATUS,并记录 File 与 Position 的值。
SHOW MASTER STATUS\G
3. 从服务器的启动前提与配置
从服务器的启动命令和配置要点,核心是确保能够正确接入主服务器的二进制日志并进行数据还原。配置 server-id、relay_log 及连接信息,是从服务器正常工作的前提。
3.1 配置从服务器参数
在从服务器的 my.cnf 中,设置与主从关系相匹配的参数,确保从端正确地接收主端日志。以下是一个从服务器常用的配置片段:server-id、relay_log、read_only。
[mysqld]
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
relay_log_index = /var/log/mysql/mysql-relay-bin.index
read_only = true
3.2 确保网络与权限
从服务器需要能够访问主服务器的网络端口、并且具备对应的复制账户权限。请确保 主机到从机的网络连通性、10秒级以上的心跳、以及防火墙策略允许 3306 端口的流量。
验证连接可用性的一个简单方式是在从服务器上执行以下命令,用于测试复制账户的可用性:SHOW SLAVE STATUS(尚未启动时返回空)或直接尝试连接主端的端口以确认可达性。
4. 完整的主从启动过程:从创建到启动
此部分描述了从创建复制关系到正式启动复制的完整流程,确保主从之间的日志坐标和连接信息一致。本文档中的操作均以命令形式呈现,便于直接执行。
4.1 在从服务器关联主机信息
在从服务器上使用 CHANGE MASTER TO 指定主机、复制账户以及日志文件位点。若使用 GTID,需启用 MASTER_AUTO_POSITION=1;若使用日志坐标,请填写 MASTER_LOG_FILE 与 MASTER_LOG_POS。
CHANGE MASTER TOMASTER_HOST='master_ip',MASTER_USER='repl',MASTER_PASSWORD='your_password',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154;
-- 或使用 GTID 自动定位
-- CHANGE MASTER TO MASTER_AUTO_POSITION = ON;
4.2 启动从复制与验证
完成主从关联后,启动从服务器的复制进程,并验证状态。执行以下命令开启复制并检查状态信息:START SLAVE;、SHOW SLAVE STATUS\G。
START SLAVE;
SHOW SLAVE STATUS\G
5. 验证与故障排查要点
验证主从复制是否稳定是一个持续过程。通过持续监控 Seconds_Behind_Master、Slave_IO_Running、Slave_SQL_Running 的状态,以及定期执行数据一致性校验,可以发现并定位潜在问题。
5.1 验证同步状态
在从服务器上查看同步状态,可以快速判断复制是否正常。请重点关注以下字段:Slave_IO_Running=Yes、Slave_SQL_Running=Yes、以及 Seconds_Behind_Master 的数值。
SHOW SLAVE STATUS\G
-- 重点关注以下字段:
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0 或一个稳定的非负数
5.2 常见问题与排查要点
在实际运维中,常见问题包括 连接失败、日志坐标错误、权限不足、以及网络中断。排查思路通常包括:检查 MASTER_HOST、MASTER_USER、MASTER_PASSWORD 的正确性,核对 MASTER_LOG_FILE 与 MASTER_LOG_POS,以及通过 SHOW VARIABLES 与 SHOW SLAVE STATUS 提取错误信息。
SHOW SLAVE STATUS\G
-- 如果 Slave_IO_Running 或 Slave_SQL_Running 为 No,查看 Last_Error 字段定位原因


