mysql - 由于caching_sha2_password,MySQL 8.0.11 连接错误
问题描述
当我尝试连接到 MySQL Workbench 上的服务器时,我收到错误消息
您的连接尝试以 localhost:3306 的身份从您的主机到服务器的用户“root”失败:
caching_sha2_password
无法加载身份验证插件:指定的模块无法找到。
好像我没有caching_sha2_password
安装模块。如何安装这个插件?
我尝试按照此处提供的步骤进行操作。不过这是我第一次接触MySQL,所以步骤没看懂。
例如,在 Using SHA-2 Pluggable Authentication 下,它说
“将这些值存储在 >系统表的
plugin
和authentication_string
列中。”mysql.user
但是mysql.user
系统表在哪里,我如何访问它并存储值?
任何帮助将不胜感激!
解决方案
你看错地方了。故事是这样的:
MySQL 8 引入了一种新的身份验证方法:caching_sha2_password,它提高了性能(因此缓存)以实现安全身份验证(sha2 散列)。这一重大更改已在很晚才成为新帐户的默认设置,因此当 MySQL 8.0.11 发布时,MySQL Workbench(以及许多其他客户端工具)无法为它做好准备。未准备的客户端应用程序/库将显示上述错误。
许多所谓的“解决方案”只是简单地建议将身份验证方法切换到较旧的、不太安全的方法(MySQL 本机)。这与其说是一种解决方案,不如说是一种技巧。请记住,这仅适用于默认使用新身份验证方法的新帐户。现有帐户(例如,当您将旧服务器升级到 8.0 时)仍然像以前一样工作,除非您明确更改用户的身份验证方法。
与此同时,MySQL Workbench 赶上了这里,并且在 MySQL 下载页面上提供了一个候选版本(MySQL Workbench 8.0.11 RC)(请参阅“开发版本”选项卡)。将它用于您的 8.x 服务器。GA 版本将很快推出。
推荐阅读
- android - 为什么 ObjectAnimator 不能在 addOnGlobalLayoutListener 中工作
- database-design - 用于引用两个不同表的架构设计
- python - 提取不同行上的操作
- c++ - 使用随机二分搜索算法有什么好处?
- libgdx - 获取被点击的灯具
- flutter - 没有为“_MyAppState”类型定义方法“getApplicationDocumentsDirectory”
- python - 创建管道(Python)时,“MultiOutputClassifier”对象不可迭代
- swift - 一些 UICollectionViewDropDelegateMethods 未被调用
- javascript - 如何在 webpack treeshaking 中排除自定义构造函数?
- javascript - 从 codecommit 调用 lambda