mysql8.0新特性-双密码
我们生产环境有时会要求定期修改账户密码,但我们都知道,如果数据库账号的密码修改后,应用会立马报错,影响业务,直到数据库密码完成,以及业务代码调整新密码再重新发版后才能恢复,需要DBA和运维约定时间,密切配合。这种长时间的业务中断是不能容忍的。
然而,MySQL8.0的双密码机制,就是为了解决这一问题。我们可以给同一个用户配置两个密码,一个主密码一个辅助密码,两个密码可以同时生效,均能进行业务连接。这样我们就可以提前创建好辅助密码,待业务发版调整为新密码后,再将主密码(老密码)丢弃,数据库和应用层无需密切配合,也不用停机。
create user app@'192.168.0.%' identified by '123456';
grant select on test.* to app@'192.168.0.%';
alter user app@'192.168.0.%' identified by '654321' retain current password;
-- 业务发版,调整为新密码654321后,废弃老密码
alter user app@'192.168.0.%' identified by '654321' discard old password;