克隆后必须删除auto.cnf并重启mysqld,否则因uuid重复导致io线程无法启动;同时server-id须全局唯一且非零,配置后必须重启生效,网络权限需匹配实际ip与防火墙设置。

克隆后不改 UUID 和 server-id,从节点必然启动失败或同步中断——这不是配置问题,是 MySQL 实例唯一性校验直接拒绝。
克隆后必须删除 auto.cnf 并重启 mysqld
MySQL 启动时会读取 /var/lib/mysql/auto.cnf 中的 server-uuid。克隆虚拟机后该文件被完整复制,导致主从 UUID 相同,CHANGE MASTER TO 会静默失败,SHOW SLAVE STATUS 中 Seconds_Behind_Master 为 NULL,IO_Running 显示 No。
- 先停库:
systemctl stop mysqld - 删文件:
rm /var/lib/mysql/auto.cnf(路径可能因安装方式不同为/www/server/data/auto.cnf或/usr/local/mysql/data/auto.cnf,用find / -name auto.cnf 2>/dev/null确认) - 再启动:
systemctl start mysqld—— 启动时会自动生成新 UUID
server-id 必须全局唯一且不能为 0
MySQL 主从靠 server-id 区分角色,重复会导致 binlog 事件被忽略或循环写入。它不是“建议配置”,是协议级硬要求。
- 主库设为非零整数,如
server-id = 1 - 从库必须不同,如
server-id = 2、server-id = 101,不能和主库或其他从库撞车 - 配置位置:CentOS/RHEL 通常在
/etc/my.cnf或/etc/my.cnf.d/mysql-server.cnf的[mysqld]段下;Ubuntu/Debian 多在/etc/mysql/mysql.conf.d/mysqld.cnf - 改完必须重启:
systemctl restart mysqld,仅 reload 不生效
网络与权限配置必须匹配克隆后的实际 IP
克隆后若只改了 IP 却没同步更新授权语句里的 host,从库连不上主库的 3306 端口,IO_Running 会卡在 Connecting。
- 主库创建复制用户时,
CREATE USER 'repl'@'192.168.10.134'中的 IP 必须是从库当前真实 IP,不能沿用原主机的 - 防火墙要放行主库 3306(不是从库端口),命令:
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload - 确认主库
bind-address没锁死为127.0.0.1;若为0.0.0.0或具体内网 IP 才可被从库访问
最容易被跳过的其实是 auto.cnf —— 它不参与任何配置文件编辑,也不报错,但只要存在且 UUID 冲突,从库就永远无法建立有效 IO 线程。每次克隆完第一件事不是改 IP 或 hostname,而是删它、重启、验证新 UUID 是否生成成功。











