【问题标题】:Authentication plugin error while connecting to MySQL database连接到 MySQL 数据库时的身份验证插件错误
【发布时间】:2018-06-17 00:19:16
【问题描述】:

我正在使用 macOS 版本 10.13.5 - 实际上是最新版本。

我通常使用 Laravel 项目 (5.6),因此我使用 brew services istaller 来使本地环境正常工作。

我在 v. 2.0.12 中使用 PHP v 7.1.16、MySQL 8.0.11 和 Valet

通过 Brew 安装 PHP 和 MySQL。

在过去的 3 个月里,我一直在正常工作,但我不得不重新安装我的操作系统的那一天终于到来了。

在使用新副本重新安装 macOS 并将每个服务安装到与以前相同的版本后,我在尝试通过 SequelPro 连接到 MySQL 数据库时遇到一些奇怪的错误。 p>

这里有一些日志:

MySQL said: Authentication plugin 'caching_sha2_password' cannot be 
loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image 
not found

这很奇怪,因为我在很长一段时间内一直在使用相同的东西而没有任何问题......

因此,如果您有任何关于如何处理此问题的建议,我将不胜感激。 另外我想注意到我已经阅读了关于这个问题的几乎所有内容,但我无法找到至少一个像我这样的配置(他们中的大多数人将这个问题描述为使用 mysql 提供的本地数据库或其他一些服务提供商)。

【问题讨论】:

    标签: mysql laravel homebrew sequelpro


    【解决方案1】:

    出现错误消息是因为 MySQL v8 更改了默认的身份验证插件/方法,它与旧客户端没有向后兼容性。 可以通过使用旧的身份验证方法解决该错误,可以通过执行以下操作为 root 用户启用该方法:

    安装 MySQL 后,使用 CLI 进行身份验证,例如

    mysql -uroot

    然后运行以下命令以使用旧的身份验证方法:

    ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

    最后,刷新权限:

    FLUSH PRIVILEGES;

    现在您应该可以再次使用 SequelPro 进行连接(使用指定的密码)。

    【讨论】:

    • 我试过了,但是在第一个命令(alter for root)之后,我得到了错误 1396: ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%' ,然后在刷新权限后我收到:ERROR 1064 (42000): You have an error in your SQL syntax;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“PRIVILIGES”附近使用正确的语法。
    • 再次尝试更改用户语句,但使用root@localhost 而不是root(我编辑了答案以反映此更改并修复错字)。
    • 太好了,现在它工作了,即使我不必刷新权限,谢谢 :)
    • 很高兴它起作用了,最后我无法使用 SequelPro,因为每次选择/刷新数据库时它都会崩溃。希望您也不是这种情况:)
    • 哈,不幸的是,我为此下载了其他 mysql 工具,它可以工作。
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多