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

首次Node.js连接SQL Server遇登录失败,请求技术支持

Node.js连接SQL Server登录失败问题排查与修正

你遇到的登录失败核心是身份验证方式冲突,同时配置文件存在语法错误,以下是具体修正方案:

一、核心配置错误修正

1. 身份验证方式二选一

当前配置同时启用了trustedconnection: true(Windows集成身份验证)和user/password(SQL Server身份验证),这会导致SQL Server混淆验证逻辑,直接触发登录失败:

  • 若使用Windows身份验证:删除user和password字段,且将trustedconnection改为驼峰写法trustedConnection(符合mssql库的配置规范);
  • 若使用SQL Server身份验证:删除trustedconnection: true,注意这里的账号密码必须是SQL Server独立登录账号(不是Windows系统的用户名密码),且该账号需拥有learningProgress数据库的访问权限。

2. 修复配置语法错误

配置文件中port:55829前缺少逗号,会导致JavaScript语法解析失败,必须补充:

const config = {
    // 仅SQL身份验证保留以下两行
    user: 'sql_login_account',
    password: 'sql_login_password',
    server: 'localhost',
    database: 'learningProgress',
    options: {
        trustedConnection: true, // 仅Windows身份验证保留此行
        enableArithAbort: true,
        instanceName: 'DESKTOP-564IAGD\\SQLEXPRESS', // 写法正确,注意驼峰instanceName
        encrypt: true,
        trustServerCertificate: true,
    },
    port: 1433 // 补充逗号,且对应你设置的TCP/IP端口(你提到是1433,而非55829)
};

3. 实例名称与端口的对应逻辑

你提到TCP/IP端口已设为1433,但配置里写了port:55829,这里需要统一:

  • 若SQL Server Express实例确实监听1433端口,将port改为1433;
  • 若已指定正确端口,instanceName可省略(端口直接定位到目标实例)。

二、验证与排查步骤

  1. 确认SQL Server身份验证模式:打开SQL Server Management Studio(SSMS),右键服务器→属性→安全性,检查是否启用了对应模式(Windows身份验证或混合模式);
  2. 测试账号有效性:用SSMS先手动登录目标账号,确认能正常访问learningProgress数据库;
  3. 检查防火墙规则:确保Windows防火墙允许Node.js访问SQL Server的监听端口(1433);
  4. 重启服务:修改TCP/IP配置后,需重启SQL Server和SQL Server Browser服务生效。

三、修正后的完整配置示例

Windows身份验证版本

const config = {
    server: 'localhost',
    database: 'learningProgress',
    options: {
        trustedConnection: true,
        enableArithAbort: true,
        instanceName: 'DESKTOP-564IAGD\\SQLEXPRESS',
        encrypt: true,
        trustServerCertificate: true,
    },
    port: 1433
};

SQL Server身份验证版本

const config = {
    user: '你的SQL登录账号',
    password: '你的SQL登录密码',
    server: 'localhost',
    database: 'learningProgress',
    options: {
        enableArithAbort: true,
        instanceName: 'DESKTOP-564IAGD\\SQLEXPRESS',
        encrypt: true,
        trustServerCertificate: true,
    },
    port: 1433
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:55:23