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

Node.js连接SQL Server报localhost:1433连接错误如何解决?

Node.js 连接 SQL Server 连接错误排查方案

核心问题:配置参数不匹配 mssql 库要求

你的代码混用了Sequelize的配置项(dialect、dialectOptions),但mssql库(基于tedious驱动)的配置格式完全不同,这是主要报错原因。以下是修正方案:

1. 修正配置结构

删除dialect和dialectOptions,改用mssql原生配置项:

const sql = require('mssql');

const config = {
    server: 'localhost',
    database: 'Student',
    // 用实例名时依赖SQL Server Browser,无需手动指定端口;若硬设port需确认实例监听1433
    // port: 1433, 
    instanceName: 'MSSQLEXPRESS',
    options: {
        encrypt: false, // 本地连接无需加密
        trustServerCertificate: true, // 规避证书验证错误
        validateBulkLoadParameters: false // 按需保留
    },
    // 身份验证二选一:
    // 方案1:SQL Server账号验证
    user: '你的SQL登录账号',
    password: '你的密码',
    // 方案2:Windows身份验证(需额外安装msnodesqlv8驱动)
    // authentication: {
    //     type: 'ntlm',
    //     options: {
    //         domain: '你的域名',
    //         userName: 'Windows账号',
    //         password: 'Windows密码'
    //     }
    // }
};

// 改用async/await更便于错误排查
async function connectDB() {
    try {
        await sql.connect(config);
        console.log('Connected to SQL Server successfully!');
    } catch (err) {
        console.log(`Error connecting to SQL Server: ${err.message}`);
        console.error(err.stack); // 打印完整错误栈定位问题
    }
}

connectDB();

2. 关键配置注意事项

  • 端口与实例名冲突:指定instanceName时,SQL Server Browser会自动解析实例的动态端口,无需手动设置port;若硬设port:1433,需在SQL Server配置管理器中确认MSSQLEXPRESS实例确实监听该端口。
  • 身份验证必填:无论使用SQL账号还是Windows身份验证,都必须配置对应验证信息,否则会因权限不足报错。
  • SQL Server Browser依赖:使用实例名连接时,确保SQL Server Browser服务处于运行状态,且防火墙允许UDP 1434端口通信。

3. 额外排查步骤

  • 用SSMS(SQL Server Management Studio)测试相同连接参数(服务器名、数据库、账号),确认SQL Server本身可正常访问。
  • 检查SQL Server是否允许远程连接(在服务器属性“连接”选项卡中开启“允许远程连接到此服务器”)。
  • 确保mssql库版本与Node.js兼容,建议安装最新稳定版:npm install mssql@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:30:14