mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] . 怎么解决

这个错误 mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] 出现的原因是因为 MySQL 服务器使用了 caching_sha2_password 作为认证方式,而客户端(PHP 的 mysqli 扩展)不支持这种认证方式。

解决方法有两种:

方案一:更改 MySQL 用户的认证插件【经过本人测试,可行】

你可以把 MySQL 用户的认证插件改回 mysql_native_password,这样可以避免这个问题。

  1. 使用具有管理员权限的用户登录到 MySQL。

  2. 执行以下 SQL 命令:

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

    '你的密码' 替换为你希望设置的密码。

  3. 然后执行 FLUSH PRIVILEGES; 来刷新权限。

方案二:更新 MySQL 客户端(mysqli)或 PHP 版本

如果你不想改变认证方式,可以选择更新 MySQL 客户端,使其支持 caching_sha2_password

  • Linux 用户:可以更新 php-mysql 包。
  • Windows 用户:可以升级 PHP 到最新版本,确保 mysqli 扩展支持 caching_sha2_password

更新完成后,再次尝试连接。

这两种方法都能解决你的问题。你可以根据需求选择适合的方案!如果需要进一步的帮助,随时告诉我。

posted @ 2025-07-02 10:03  盘思动  阅读(463)  评论(1)    收藏  举报