mysql主从密码怎么同步_mysql主从密码同步修改配置方法

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