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

时间:2014-03-12 20:13:18

标签: php mysql

尝试从命令行执行PHP脚本,并且它给了我这个:

c:\tubekit>php harvestYTVideos.php mylist.txt
  

PHP警告:mysqli_connect():服务器请求身份验证   客户端未知的方法[mysql_old_password] in   第13行的C:\ tubekit \ connect.php

     

警告:mysqli_connect():服务器请求的身份验证方法   C:\ tubekit \ connect.php中的客户端[mysql_old_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());

2 个答案:

答案 0 :(得分:0)

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

我希望这对您一样对我有用。

答案 1 :(得分:0)

我收到了类似您的类似问题,

(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_sha2_password作为其主要身份验证插件,而以前的版本一直使用mysql_native_password作为其默认身份验证插件。解决此问题的方法之一是还原MySQL版本8.0,以使用MySQL_native_password作为其默认身份验证插件。 Tod这样做(Ubuntu用户):

cd /etc/mysql

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

default_authentication_plugin=mysql_native_password

重启服务后

systemctl restart mysql.service

并且如果我们遇到类似的问题,那应该能够解决您的问题。

第二个选项是为DB创建一个新用户,并使用native_password插件对其进行身份验证。有关完整的操作步骤,请点击此链接

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