当我尝试连接到 MySQL Workbench 上的服务器时,出现错误消息
Your connection attempt failed to user 'root' from your host to server as localhost:3306:
Authentication plugin
caching_sha2_password
cannot be loaded:The specified module could not be found.
我好像没有安装 caching_sha2_password
模块。如何安装此插件?
我尝试按照提供的步骤进行操作 here .但是我是第一次接触MySQL,所以没看懂步骤。
例如,在 Using SHA-2 Pluggable Authentication 下,它说
"storing those values in the
plugin
andauthentication_string
columns of the >mysql.user
system table."
但是 mysql.user
系统表在哪里?我如何访问它并存储值?
如有任何帮助,我们将不胜感激!
最佳答案
你看错地方了。故事是这样的:
MySQL 8 引入了一种新的身份验证方法:caching_sha2_password,它提高了安全身份验证(sha2 哈希)的性能(因此缓存)。这一重大变化很晚才成为新帐户的默认设置,因此当 MySQL 8.0.11 发布时,MySQL Workbench(以及相当多的其他客户端工具)无法为此做好准备。未经准备的客户端应用程序/库将显示上述错误。
许多所谓的“解决方案”只是建议将身份验证方法切换到较旧的、安全性较低的方法(MySQL native )。这与其说是一种解决方案,不如说是一种黑客攻击。请记住,这仅适用于默认使用新身份验证方法的新帐户。现有帐户(例如,当您将旧服务器升级到 8.0 时)仍然像以前一样工作,除非您明确更改了用户的身份验证方法。
与此同时,MySQL Workbench catch 了这里,并且在 MySQL 下载页面(请参阅“开发版本”选项卡)上提供了一个候选版本(MySQL Workbench 8.0.11 RC)。将其用于您的 8.x 服务器。 GA 版本将很快推出。
关于由于 caching_sha2_password 导致 MySQL 8.0.11 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50826727/