MySQL主从架构中,主库和从库之间的数据同步依赖于复制账号和权限配置。当需要修改主从复制所使用的账号密码时,必须正确更新配置,否则会导致复制中断。下面介绍如何安全地完成MySQL主从密码的同步更新。
确认复制账号信息
在修改密码前,先确认当前主从复制使用的是哪个账号:
登录主库,执行:SELECT User, Host FROM mysql.user WHERE Repl_slave_priv = 'Y'; 通常会看到类似 'repl'@'192.168.%' 的复制用户。 记录该用户名和主机白名单,后续要用到。
在主库上修改复制账号密码
使用具有权限的账号登录主库,修改复制用户的密码:
执行语句(以 MySQL 8.0+ 为例):ALTER USER 'repl'@'192.168.%' IDENTIFIED BY '新密码'; 刷新权限:
FLUSH PRIVILEGES; 确保主库的 my.cnf 中已配置正确的 server-id 和 log-bin,避免影响复制。
在从库上更新 CHANGE MASTER 配置
密码修改后,从库仍使用旧密码连接,会报错 ERROR 12154 或认证失败。需手动更新从库配置:
停止从库复制:STOP SLAVE; 更新主库连接信息,包括新密码:
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='新密码',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1234;
(注意:MASTER_LOG_FILE 和 MASTER_LOG_POS 应保持不变,除非重新初始化复制) 重启复制:
START SLAVE;
验证复制状态
检查从库是否正常运行:
执行:SHOW SLAVE STATUS\G 重点关注以下两项:
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
如果均为 Yes,且 Seconds_Behind_Master 逐渐减少,则说明复制正常。 查看是否有错误信息,如密码错误、连接超时等。
基本上就这些操作。关键是先改主库账号密码,再在从库用 CHANGE MASTER TO 更新密码,最后启动并验证复制状态。只要步骤清晰,不会丢失数据或中断同步。不复杂但容易忽略细节。
