mysql主从复制需要哪些条件_mysql环境准备说明

来源:这里教程网 时间:2026-02-28 20:30:55 作者:

MySQL主从复制要稳定运行,核心是主库和从库之间能正确同步数据变更。这需要在环境、配置、权限、网络等多个层面满足基本条件。

主库必须启用二进制日志(binlog)

这是主从复制的数据源头。没有开启 binlog,主库就无法记录写操作,从库自然无从复制。

确认 my.cnf(或 my.ini)中已配置:log-bin = mysql-bin(路径可自定义,但建议使用绝对路径) 同时推荐设置:server-id = 1(唯一且非0,主库通常设为1) 重启 MySQL 或执行 SET PERSIST log_bin = ON;(8.0.14+ 支持持久化变量)后验证:SHOW VARIABLES LIKE 'log_bin'; 返回 ON

主库需有专用复制用户并授权

从库连接主库时,不能用 root 或业务账号,应创建最小权限的复制账号。

登录主库执行:CREATE USER 'repl'@'%' IDENTIFIED BY 'SecurePass123'; 授予复制权限:GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; 刷新权限:FLUSH PRIVILEGES; 注意:若从库 IP 固定,建议限定主机如 'repl'@'192.168.5.10',更安全

主从服务器时间需基本同步

时间偏差过大会导致 GTID 模式下位点解析异常、慢查询日志时间错乱,甚至影响基于时间的备份恢复逻辑。

推荐使用 NTP 或 systemd-timesyncd 统一校时 检查命令:datetimedatectl status 允许误差一般控制在 ±5 秒内,生产环境建议 ≤1 秒

网络连通与端口开放是基础前提

从库必须能通过网络访问主库的 MySQL 端口(默认 3306),且主库防火墙/安全组策略允许该连接。

从库上测试连通性:mysql -h 主库IP -P 3306 -u repl -p 主库确认监听地址不是仅限 localhost(检查 bind-address 配置,生产环境常设为 0.0.0.0 或具体内网 IP) 如使用云服务(阿里云、腾讯云等),务必检查安全组是否放行对应端口和源 IP 段

从库 server-id 必须唯一且不同于主库

MySQL 依靠 server-id 区分集群中每个节点,重复会导致复制中断或数据错乱。

在从库配置文件中设置:server-id = 2(或其它不与主库及其他从库冲突的整数) 不建议使用 0 或未配置,否则启动时可能报错或被忽略 修改后需重启 MySQL 或执行 SET PERSIST server_id = 2;(需 SUPER 权限)

不复杂但容易忽略,每项都关系到复制能否建立和长期稳定。准备时按顺序逐项核对,比出问题后再排查高效得多。

相关推荐