系统mysql数据库当前处于主从复制状态,且复制使用的是root用户,密码过于简单,需要修改。停了slave后修改master密码,然后,然后想当然地change master就出错了...
一条完整的change:
change master to master_host='xxx.xxx.xxx.xxx', master_user='replication user', master_password='passwd', master_port=3306, master_log_file='mysql-binlog.000xxx', master_log_pos=xxx;
修改密码后,重新执行change:
change master to master_host='xxx.xxx.xxx.xxx', master_user='replication user', master_password='new passwd';
哇哈~,悲剧了!
如果指定MASTER_HOST与MASTER_PORT参数,slave会认为master与之前的不是同一个(即便MASTER_HOST 与 MASTER_PORT所带的参数与之前相同),之前指定的master的binlog文件名及位置将不再适用。
所以,更新密码后,只需要:
change master to master_user='replication user', master_password='new passwd';
也许可以更简单的只指定密码?(未验证)
change master to master_password='new passwd';