连接到MySQL数据库时出现身份验证插件错误

时间:2018-06-17 00:19:17

标签: mysql laravel homebrew sequelpro

我正在研究macOS ver 10.13.5 - 实际上是最新版本。

我经常使用Laravel项目(5.6),所以我使用brew服务isntaller来使本地环境工作。

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

通过 Brew 安装PHP和MySQL。

过去3个月我一直没有任何问题,但是当我不得不重新安装我的操作系统的那一天终于来了。

使用全新副本重新安装macOS,并安装与之前相同版本的每个服务后,尝试通过SequelPro连接到MySQL数据库时出现一些奇怪的错误

这里有一些日志:

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

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

所以我很欣赏有关如何处理这个问题的任何建议。 另外我还想注意,我几乎已经阅读了关于这个问题的所有内容,但是我无法找到至少一个像我这样的配置(他们中的大多数人在使用时都描述了这个问题)本地数据库由mysql或其他一些服务提供商提供)。

1 个答案:

答案 0 :(得分:16)

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

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

mysql -uroot

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

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

最后,刷新权限:

FLUSH PRIVILEGES;

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