使用Strapi CMS连接PlanetScale时遇Unknown dialect mysql2错误求助
解决Strapi连接PlanetScale时"Unknown dialect mysql2"错误
错误原因
Strapi依赖Knex.js处理数据库连接,Knex的数据库客户端标识应为mysql而非mysql2——尽管实际驱动使用的是mysql2包,但配置里的client字段必须指定为mysql,否则Knex无法识别对应的数据库方言。
解决步骤
1. 修改数据库配置文件
将config/database.js(或对应环境的配置文件)中的client值从mysql2改为mysql:
module.exports = ({ env }) => ({ connection: { client: 'mysql', // 此处修改为mysql connection: { host: env('DATABASE_HOST', 'server hostname'), database: env('DATABASE_NAME', 'strapi_db_name'), user: env('DATABASE_USERNAME', 'username'), password: env('DATABASE_PASSWORD', 'password'), ssl: { rejectUnauthorized: env('DATABASE_SSL', true) }, }, } });
2. 安装mysql2驱动依赖
确保项目已安装mysql2包,若未安装,执行以下命令:
npm install mysql2 --save # 或使用yarn yarn add mysql2
3. 验证SSL配置(可选)
PlanetScale要求强制SSL连接,你的配置中rejectUnauthorized: true是正确的,但需确认环境变量DATABASE_SSL未被错误设置为false。
4. 重启Strapi服务
修改配置并安装依赖后,重启Strapi服务:
npm run develop # 或 yarn develop
内容的提问来源于stack exchange,提问作者sridhar chary
相关产品推荐
相关产品推荐

