一开始,在 MySQL Server 上创建应用用户后,手工使用 mysql 客户端对应用用户进行了验证,MySQL Server 缓存了应用用户的验证信息。应用程序的 JDBC 参数设置在没有指定 RSA 公钥和设置 AllowPublicKeyRetrieval=True 的情况下,连接 MySQL Server,因为 MySQL Server 有用户缓存,所以可以正常连接。
之后如果发生以下几种情况:
1.MySQL Server 重启了;
2.MySQL MGR 发生切换了;
3.DBA 对 MySQL Server 做了 flush privileges;
。
会导致 MySQL Server 的用户缓存失效,应用程序连接 MySQL 异常:Public Key Retrieval is not allowed。