NestJS中配置TypeORM连接Azure SQL出现ECONNRESET错误如何解决?
问题原因
你当前的配置核心错误是仍使用MySQL的适配逻辑连接Azure SQL(Azure SQL属于SQL Server生态),MySQL驱动的握手协议无法被SQL Server识别,服务端直接断开连接,就会抛出ECONNRESET错误。
解决方案
- 修正数据库类型配置:将
type字段值从mysql改为mssql - 安装SQL Server适配依赖:执行命令
npm install mssql tedious安装TypeORM连接SQL Server所需的底层依赖 - 补全Azure SQL专属配置:Azure SQL要求加密连接,且用户名需要拼接服务器后缀,格式为
用户名@SQL服务器名,额外配置中补充SQL Server专属的加密校验规则
修正后配置示例
import { TypeOrmModuleOptions } from '@nestjs/typeorm'; import { UserEntity } from '../user/user.entity'; export const typeOrmConfig: TypeOrmModuleOptions = { type: 'mssql', // 核心改动:替换为mssql类型 host: process.env.DB_HOST, port: Number(process.env.DB_PORT) || 1433, // Azure SQL默认端口为1433 username: process.env.DB_USERNAME, // 注意格式为 你的用户名@AzureSQL服务器名 password: process.env.DB_PASSWORD, database: process.env.DB_NAME, entities: [UserEntity], extra: { encrypt: true, trustServerCertificate: false, // 适配Azure的证书校验规则 }, };
内容的提问来源于stack exchange,提问作者user7230582
相关产品推荐
相关产品推荐

