先修改主库复制账号密码,再更新从库CHANGE MASTER配置。登录主库确认复制账号后,用ALTER USER修改密码并刷新权限;随后在从库执行STOP SLAVE,通过CHANGE MASTER TO更新密码,保持日志文件和位置不变,再START SLAVE重启复制;最后检查Slave_IO_Running和Slave_SQL_Running均为Yes,确认同步正常。

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 更新密码,最后启动并验证复制状态。只要步骤清晰,不会丢失数据或中断同步。不复杂但容易忽略细节。










