Php 服务器请求的身份验证方法客户端未知

Php 服务器请求的身份验证方法客户端未知,php,mysql,Php,Mysql,试图从命令行执行一个PHP脚本,它给了我以下信息: c:\tubekit>php harvestYTVideos.php mylist.txt PHP警告:mysqli_connect():服务器请求身份验证 中的客户端[mysql\u旧密码]未知的方法 第13行的C:\tubekit\connect.php 警告:mysqli_connect():服务器请求的身份验证方法 C:\tubekit\connect.php中的[mysql\u old\u password]客户端未知 第13

试图从命令行执行一个PHP脚本,它给了我以下信息:

c:\tubekit>php harvestYTVideos.php mylist.txt
PHP警告:mysqli_connect():服务器请求身份验证 中的客户端[mysql\u旧密码]未知的方法 第13行的C:\tubekit\connect.php

警告:mysqli_connect():服务器请求的身份验证方法 C:\tubekit\connect.php中的[mysql\u old\u password]客户端未知 第13行PHP警告:mysqli_connect():(HY000/2054):服务器 请求的身份验证方法对中的客户端未知 第13行的C:\tubekit\connect.php

警告:mysqli_connect():(HY000/2054):服务器请求 C:\tubekit\connect.php中客户端未知的身份验证方法 第13行PHP警告:mysqli_error()只需要1个参数0 在第13行的C:\tubekit\connect.php中给出

警告:mysqli_error()只需要1个参数,0在中给定 第13行的C:\tubekit\connect.php无法连接到数据库:

这就是它所指的那条线

$dbh = mysqli_connect("$host","$username","$password") or die("Cannot connect to the database: ". mysqli_error());

我通过重新运行MySQLInstaller.exe并将MySQL服务器身份验证方法重新配置为“使用旧身份验证方法(保留MySQL 5.x兼容性)”,解决了类似的问题。让其他设置保持以前安装时的设置。 您可以通过转到MySql工作台并打开SQL实例来确认更改。在导航器中,打开用户和权限,然后选择用户帐户。您将在那里找到身份验证类型。 它现在应该显示标准而不是caching-sha2-password(这是MySQL8的默认设置)


我希望这对你和对我一样有效。

我也收到过类似的问题,比如你:

(HY000/2054): The server requested authentication method unknown to the client
Server requested authentication method unknown to the client [caching_sha2_password] mysqli_real_connect():
这是在我将Mysql升级到8.0.22之后。Mysql 8.0.22使用
caching\u sha2\u password
作为其主要身份验证插件,而以前的版本一直使用
Mysql\u native\u password
作为其默认身份验证插件。要解决这个问题,其中一个方法是将MySQL版本8.0还原为使用MySQL_native_密码作为默认的身份验证插件。Tod执行此操作(Ubuntu用户):

使用您喜爱的文本编辑器打开
my.cnf
文件,在
[mysqld]
之后添加下面的代码

default_authentication_plugin=mysql_native_password
然后重新启动服务

systemctl restart mysql.service
如果我们遇到类似的问题,这应该能够解决您的问题

第二个选项是创建DB的新用户,并使用本机密码插件对其进行身份验证。有关完整的操作步骤,请遵循此链接

 https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

您的服务器使用的是旧的mysql密码系统(坏),但客户端只需要新的密码格式(好)。正确的解决方案是将mysql服务器升级到不那么古老的版本。我是Hostgator的,还有其他解决方案吗?
 https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql