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

Node应用通过mssql+msnodesqlv8连接SQL Server报错无法连接如何解决

Node.js 连接 SQL Server(msnodesqlv8驱动)报错排查方案

针对你遇到的「连接字符串无效[87]、登录超时、服务器不可访问」三类报错,按以下顺序排查:

  • 修复配置冲突问题
    注意:trustedConnection: true代表启用Windows集成身份验证,会自动取当前系统登录的Windows账号做认证,和手动填写的user/passwordSQL账号认证模式互斥,混写会直接触发87连接字符串无效错误
    • 本地开发用Windows身份验证的话,直接删除配置里的user、password字段,补充trustServerCertificate: true跳过本地证书校验,修正后配置如下:
const dbConfig = {
  driver: 'msnodesqlv8',
  server: 'DESKTOP-QG3R51Q',
  database: 'WeighingScales',
  options: {
    instanceName: 'SQLEXPRESS',
    trustedConnection: true,
    trustServerCertificate: true
  }
};
  • 如果你要用SQL账号密码登录,直接删除options里的trustedConnection: true字段,确认填写的账号密码有目标库的访问权限即可。
  • 检查SQL Server基础运行配置
    • 打开SQL Server配置管理器,找到SQL Server(SQLEXPRESS)服务,确认服务状态为「正在运行」,启动类型设为自动避免下次开机服务未启动。
    • 找到对应实例下的「SQL Server网络配置 - SQLEXPRESS的协议」,确认TCP/IP协议为启用状态(SQL Express默认安装后TCP/IP是禁用状态,是触发服务器找不到、超时错误的核心原因)。
    • 右键TCP/IP选属性,切换到「IP地址」标签页,拉到最底部的IPAll分组,确认TCP端口值为1433,如果是自定义端口记好端口号,后续配置要对应。所有配置修改完后重启SQLEXPRESS服务生效。
    • 右键SQL Server实例选属性,切到「安全性」标签页,确认认证模式和你配置里选的一致:用Windows认证就选「Windows身份验证模式」,用SQL账号就选「SQL Server和Windows身份验证模式(混合模式)」。
  • 修复连接参数常见错误
    • 如果你自定义了SQL Server的TCP端口,配置里不能同时写instanceName和port两个参数,同时传值也会触发连接字符串无效错误,指定自定义端口时直接删掉instanceName字段,在options里加port: 你的自定义端口号即可。
    • 本地连接测试时可以把server字段值改成localhost,排除主机名解析失败的问题。
    • 检查系统防火墙设置,放通SQL Server的1433端口入站规则,或者直接把SQL Server服务程序加入防火墙白名单,避免连接被拦截超时。
  • 驱动兼容性修复
    你报错里调用的是SQL Server Native Client 11.0老版本驱动,对SQL Server 2019及以上版本兼容性很差,直接安装最新版Microsoft ODBC Driver 17/18 for SQL Server即可,安装完成后不需要修改现有配置里的driver字段,msnodesqlv8会自动调用高版本兼容驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 00:18:19