MySql 8.0+ 报错:mysqli_connect(): The server requested authentication method unknown to the client

MySql 8.0中的更改

错误原理:

官方将MySql 8.0+以后的版本改变了原有的mysql_native_password身份验证改为caching_sha2_password的验证方式,使其安全性得到提升。

对于服务器,default_authentication_plugin系统变量从mysql_native_password到caching_sha2_password.

此更改仅适用于安装或升级到MySQL8.0或更高版本后创建的新帐户。对于升级后的安装中已经存在的帐户,它们的身份验证插件保持不变。希望切换到caching_sha2_password可以使用ALTER USER声明:

ALTER USER user
  IDENTIFIED WITH caching_sha2_password
  BY 'password';

解决办法:

打开cmd输入如下:

mysql -uroot -p

--输入密码

use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

PHP连接数据库的方法

参考:https://www.php.net/manual/zh/mysqli.real-connect.php

发布了62 篇原创文章 · 获赞 5 · 访问量 3920

猜你喜欢

转载自blog.csdn.net/qq_42194657/article/details/103236169