3 MySQL8 因加密规则改变而出现的错误(Navicat DBeaver)
发布网友
发布时间:2024-09-30 21:28
我来回答
共1个回答
热心网友
时间:2024-11-19 05:25
在使用 Navicat for MySQL 连接 MySQL 8 时遇到“authentication plugin 'caching_sha2_password' cannot be loaded”错误,这是因为 MySQL 8 引入了新的密码加密方式 caching_sha2_password,而 Navicat 版本不支持此加密方式。以下是解决步骤:
方法一:升级 Navicat 版本。测试发现,使用 Navicat 15 可以解决此问题。
方法二:修改密码加密规则回 mysql_native_password。步骤如下:
1. 以管理员身份运行 cmd,然后使用命令进入 MySQL。
2. 执行命令:`mysql -uroot -proot`,设置密码永不失效。
3. 更改密码,执行命令:`ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;`。
4. 重新设置加密规则:`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';`。
5. 刷新数据库或重启 MySQL 服务:`FLUSH PRIVILEGES;`。
在使用 DBeaver 连接 MySQL 8 时,可能会遇到“Public Key Retrieval is not allowed”错误。解决方法如下:
1. 修改 DBeaver 客户端,将 allowPublicKeyRetrieval 值设置为 true。
2. 更改密码规则:`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';`。
重要备注:如果用户账号使用 sha256_password 认证,传输过程中需保护密码,推荐使用 TLS 作为首选机制。若 TLS 不可用,则使用 RSA 公钥加密。设置 ServerRSAPublicKeyFile 连接字符串或 AllowPublicKeyRetrieval=True 允许客户端自动从服务器请求公钥。然而,启用 AllowPublicKeyRetrieval=True 可能使恶意代理执行 MITM 攻击以获取明文密码,因此默认情况下应设置为 False,并显式启用。