两种解决办法
一、修改验证方式
访问MySQL服务器,尝试将用户的身份验证方法更改为 mysql_native_password
。
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
把账号的验证方式改为mysql_native_password验证 即可连接
二、升级本地PHP版本
需要PHP7.4.7及以上的mysqli 支持 caching_sha2_password 验证
下载php for windows
windows.php.net - /downloads/releases/archives/windows.php.net - /downloads/releases/archives/windows.php.net - /downloads/releases/archives/
下载需要的PHP版本
其中NTS是Zend官方提供的一个PHP版本的变体,全称为Not Thread Safe(非线程安全)。通常PHP版本分为TS(Thread Safe,线程安全)和NTS两种。NTS版本的PHP适用于嵌入式的环境或者一些不涉及多线程操作的情况下使用。相比之下,TS版本适用于多线程环境下运行,例如在Apache的模块中使用。
我使用的是PHPStudy
配置PHPStudy 使用下载的PHP版本
下载的PHP移动到
安装的PHP目录下\phpstudy_pro\Extensions\php
把php.ini-development 或 php.ini-production 改为php.ini 并打开需要的扩展
打开小皮网站配置PHP版本
输出 phpinfo 看mysqli里面是否包含caching_sha2_password即可解决