为什么我无法使用 mysqli_connect 和 PHP 7.4 连接到 MySQL 5.3.36 共享服务器,但它可以使用 php 7.1?
Why I can't connect to a MySQL 5.3.36 shared server using mysqli_connect and PHP 7.4, but it will work using php 7.1?
我在 Hostgator 上有这个共享帐户。使用 PHP 7.1 和 mysqli_connect,我可以毫无问题地连接到 MySQL 5.3.36 数据库。 PHP 脚本应该没问题。托管公司给我发了一封电子邮件,让我知道他们将支持 PHP 7.4,并且他们将在一个月内删除所有旧版本。然后我将帐户切换到 PHP 7.4。 Wordpress 博客需要一些调整,但它现在可以使用 PHP 7.4。我用于动态文件目录的其他数据库无法使用 PHP 7.4 进行连接。我收到以下错误消息:
The server requested authentication method unknown to the client
根据我的搜索,罪魁祸首似乎是 MySQL 身份验证插件,因此 MySQL 无法正确处理密码。我会尝试解决这个问题,但看起来我无法从我的帐户更改插件 (mysql_native_password),而且托管公司的技术支持可能不太关心我的问题。他们的最佳答案是将 PHP 降级到 7.1。这是一个快速修复,但在他们将其删除一个月后将无法使用。我也可以将网站移到别处或使用远程数据库,但有谁知道修复该错误并让一切正常工作的实际方法吗?
在终端中使用 mysql 后,我检查了我的用户密码,并收到“密码需要 41 个字符哈希”的错误消息。我只是更改了密码,现在可以使用了。似乎密码的存储方式发生了变化,或者错误已修复。谢谢。
我在 Hostgator 上有这个共享帐户。使用 PHP 7.1 和 mysqli_connect,我可以毫无问题地连接到 MySQL 5.3.36 数据库。 PHP 脚本应该没问题。托管公司给我发了一封电子邮件,让我知道他们将支持 PHP 7.4,并且他们将在一个月内删除所有旧版本。然后我将帐户切换到 PHP 7.4。 Wordpress 博客需要一些调整,但它现在可以使用 PHP 7.4。我用于动态文件目录的其他数据库无法使用 PHP 7.4 进行连接。我收到以下错误消息:
The server requested authentication method unknown to the client
根据我的搜索,罪魁祸首似乎是 MySQL 身份验证插件,因此 MySQL 无法正确处理密码。我会尝试解决这个问题,但看起来我无法从我的帐户更改插件 (mysql_native_password),而且托管公司的技术支持可能不太关心我的问题。他们的最佳答案是将 PHP 降级到 7.1。这是一个快速修复,但在他们将其删除一个月后将无法使用。我也可以将网站移到别处或使用远程数据库,但有谁知道修复该错误并让一切正常工作的实际方法吗?
在终端中使用 mysql 后,我检查了我的用户密码,并收到“密码需要 41 个字符哈希”的错误消息。我只是更改了密码,现在可以使用了。似乎密码的存储方式发生了变化,或者错误已修复。谢谢。