安装Strapi连接MySQL报错:密码不符合策略及认证模式不支持如何解决?
两个报错的根因分别为:MySQL 8.0默认使用
caching_sha2_password认证协议,Strapi依赖的MySQL客户端暂不支持;修改认证协议时触发了MySQL自带的密码强度校验规则。
报错解决步骤
1. 解决密码强度不满足要求报错
两种可选方案,根据你的场景选择:
方案一:临时降低校验规则(仅本地开发环境推荐)
登录MySQL命令行后依次执行以下语句:
- 查看当前密码校验配置:
SHOW VARIABLES LIKE 'validate_password%'; - 临时调低策略等级和最小长度要求:
SET GLOBAL validate_password.policy = LOW; SET GLOBAL validate_password.length = 4;
- 执行认证协议修改语句,将
你的密码替换为实际要设置的数据库密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; - 刷新权限生效:
FLUSH PRIVILEGES;
方案二:使用符合强度要求的密码(生产/安全优先)
无需修改校验规则,直接将ALTER语句中的密码替换为满足默认MEDIUM等级要求的密码即可,要求至少8位,同时包含大小写字母、数字和特殊字符,例如Test@2024。
2. 验证配置并重新安装Strapi
完成上述修改后,重新执行Strapi安装命令:npx create-strapi-app my-app
输入刚才设置的MySQL密码即可正常完成连接校验和安装。
可选:永久生效配置(仅本地开发环境)
如果不想每次重启MySQL后重新设置规则,可以修改Homebrew安装的MySQL配置文件:
- M1芯片Mac路径:
/opt/homebrew/etc/my.cnf - Intel芯片Mac路径:
/usr/local/etc/my.cnf
在[mysqld]节点下添加以下内容:
validate_password.policy=LOW validate_password.length=4 default-authentication-plugin=mysql_native_password
保存后重启MySQL服务生效:brew services restart mysql
内容的提问来源于stack exchange,提问作者Kyle Corbin Hurst
相关产品推荐
相关产品推荐

