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

使用TypeORM连接SQL Server LocalDB失败,报错getaddrinfo ENOTFOUND

解决TypeORM连接SQL Server LocalDB的问题

错误原因

getaddrinfo ENOTFOUND (localdb) 错误表明TypeORM使用的MSSQL驱动无法通过常规host解析逻辑连接LocalDB——LocalDB是SQL Server轻量本地实例,不依赖TCP/IP连接,需要专用的连接配置。

解决方案

1. 安装适配驱动

LocalDB需使用msnodesqlv8驱动替代默认的tedious,执行安装命令:

npm install msnodesqlv8 --save

2. 修改TypeORM配置

以下两种配置方式均可解决连接问题:

方式一:直接使用连接字符串

绕过host字段,用完整的SQL Server连接字符串配置:

import { DataSourceOptions, DataSource } from 'typeorm';

export const dataSourceOptions: DataSourceOptions = {
  type: 'mssql',
  connectionString: 'Server=(LocalDB)\\MSSQLLocalDB;Database=TestDb;Trusted_Connection=True;TrustServerCertificate=True;',
  synchronize: false,
  logging: true,
  entities: ['dist/persistence/entities/*.entity{.ts,.js}'],
  migrations: ['dist/persistence/migrations/*{.ts,.js}'],
  migrationsTableName: '_DbMigrations',
  migrationsRun: true,
};

const dataSource = new DataSource(dataSourceOptions);
export default dataSource;

方式二:配置实例名称

移除host字段,通过options.instanceName指定LocalDB实例:

import { DataSourceOptions, DataSource } from 'typeorm';

export const dataSourceOptions: DataSourceOptions = {
  type: 'mssql',
  database: 'TestDb',
  synchronize: false,
  logging: true,
  options: {
    instanceName: 'MSSQLLocalDB',
    trustServerCertificate: true,
    trustedConnection: true, // 启用Windows身份验证
  },
  entities: ['dist/persistence/entities/*.entity{.ts,.js}'],
  migrations: ['dist/persistence/migrations/*{.ts,.js}'],
  migrationsTableName: '_DbMigrations',
  migrationsRun: true,
};

const dataSource = new DataSource(dataSourceOptions);
export default dataSource;

3. 验证LocalDB实例有效性

确保MSSQLLocalDB实例存在:

  • 打开命令提示符执行:
sqllocaldb info MSSQLLocalDB
  • 若实例不存在,执行创建命令:
sqllocaldb create MSSQLLocalDB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:35:07