You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Strapi后执行npm run develop遇ER_NOT_SUPPORTED_AUTH_MODE错误求助

解决Strapi连接MySQL时ER_NOT_SUPPORTED_AUTH_MODE错误

问题原因

MySQL 8.0及以上版本默认采用caching_sha2_password认证协议,而Strapi依赖的MySQL客户端暂不支持该协议,导致数据库连接失败。

解决步骤

  • 登录MySQL命令行
    打开终端或命令提示符,执行命令登录MySQL(替换your_password为你的root密码):

    mysql -u root -p
    

    输入密码后进入MySQL交互界面。

  • 修改用户认证方式
    在MySQL命令行中执行以下SQL语句,将root用户的认证方式改为mysql_native_password(替换your_root_password为实际密码):

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_root_password';
    FLUSH PRIVILEGES;
    

    若Strapi配置中Host填写的是127.0.0.1,需额外执行:

    ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'your_root_password';
    FLUSH PRIVILEGES;
    
  • 重启Strapi服务
    返回Strapi项目目录,重新执行启动命令:

    npm run develop
    

备选方案(若上述方法无效)

打开Strapi项目的config/database.js(TypeScript项目为config/database.ts)文件,在数据库连接配置中添加authPlugin项:

module.exports = ({ env }) => ({
  connection: {
    client: 'mysql',
    connection: {
      host: env('DATABASE_HOST', '127.0.0.1'),
      port: env.int('DATABASE_PORT', 3306),
      database: env('DATABASE_NAME', 'store'),
      user: env('DATABASE_USERNAME', 'root'),
      password: env('DATABASE_PASSWORD', 'your_password'),
      authPlugin: 'mysql_native_password' // 添加该配置项
    },
  },
});

保存文件后再次执行npm run develop启动服务。

内容的提问来源于stack exchange,提问作者Eze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:39:06