问题描述
**fastadmin安装报错**
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
原因分析:
由于MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证。解决这个问题,有两种办法。
解决方案:
方案1:升级PHP支持MySQL 8的新验证插件或者降低MySQL版本。;
方案2:开启MySQL 8的向PHP兼容。;
修改默认MySql8支持mysql_native_password
etc/my.cnf配置文件中,有一行:
# default-authentication-plugin=mysql_native_password
取消注释或者自己添加。
然后创建的新用户就会默认支持mysql_native_password
创建新用户开启插件方法如下
CREATE USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password!2#4‘;
已经创建好的用户修改方法如下
ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password;
上面这种方法会清除账户密码,下面这种方式会指定一个新密码
ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘new_password‘;