麒麟V10服务器PHP连接MySQL报错PHP Warning: mysqli_connect(): Unexpected server respose while doing caching_sha2 auth: 99

发布时间 2023-07-08 14:44:54作者: DuanYongchun

1.问题描述

  这个警告表示在进行缓存的 caching_sha2 认证过程中,服务器返回了一个意外的响应码 99。这是由于 MySQL 服务器的配置或版本与使用的客户端库不兼容导致的。

2.解决办法

  a.检查MySQL客户端版本:

  确保你使用的MySQL客户端版本与服务器版本兼容。如果服务器使用较新的版本,并且你使用的客户端版本较旧,可能会导致此错误。尽量升级你的MySQL客户端到与服务器版本兼容的最新版本。

  b.检查MySQL用户的身份验证方法:

  在MySQL服务器上,可以使用多种身份验证方法。较新的MySQL版本通常使用"cache_sha2"作为默认的身份验证方法。然而,较旧的客户端可能不支持该方法。你可以尝试将MySQL用户的身份验证方法更改为较旧的方法,例如"mysql_native_password"。你可以使用以下命令更改用户的身份验证方法:

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

注意将"username"和"password"替换为你实际使用的用户名和密码。

  c.更新MySQL客户端配置文件:

  如果你使用的是较新版本的MySQL客户端,但仍然遇到此错误,可能需要更新MySQL客户端的配置文件。在配置文件中,你可以指定所使用的默认身份验证方法。在MySQL客户端的配置文件(通常是my.cnf或my.ini)中添加以下行:

default-authentication-plugin=mysql_native_password

 保存更改后,重新启动MySQL客户端,并尝试连接到服务器。