尝试从命令行执行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());
答案 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