【发布时间】:2021-03-30 22:51:37
【问题描述】:
我在 Hostgator 上有这个共享帐户。使用 PHP 7.1 和 mysqli_connect,我连接到 MySQL 5.3.36 数据库没有问题。 PHP脚本应该没问题。托管公司给我发了一封电子邮件,让我知道他们将支持 PHP 7.4,他们将在一个月内删除所有旧版本。然后我将帐户切换到 PHP 7.4。 Wordpress 博客需要一些调整,但它现在使用 PHP 7.4。我用于动态文件目录的另一个数据库不会使用 PHP 7.4 连接。我收到以下错误消息:
服务器请求客户端未知的身份验证方法
根据我的搜索,罪魁祸首似乎是 MySQL 身份验证插件,因此 MySQL 无法正确处理密码。我会尝试解决这个问题,但看起来我无法从我的帐户中更改插件(mysql_native_password),并且主机公司技术支持可能不太关心我的问题。他们最好的答案是将 PHP 降级到 7.1。这是一个快速修复,但在一个月后将其删除后将无法正常工作。我也可以将网站移到其他地方或使用远程数据库,但有谁知道修复该错误并让一切正常工作的实际方法?
【问题讨论】:
-
2019 年 12 月的 This post 似乎描述了同样的问题。那里给出了答案(对于 MySQL 8.0)。
-
请启用正确的错误报告。您应该会看到一个额外的警告,告诉您请求了哪种身份验证方法。基于此,您必须寻找解决方案。见How to get the error message in MySQLi?
-
你能告诉我你使用的是哪个 PHP 版本吗?
-
@Dharman 准确的 PHP 版本是 7.4.137.4.13。我试图在终端连接到 MySQL。我可以打开一个会话,但它是一个被监禁的访问。我无法修改 root。
-
@Luuk 如果我在
mysqli_connect之前使用mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);,它不会提供任何东西。如果我使用mysqli_connect_errno和mysqli_connect_error,我会得到 2054 和上面的错误消息。