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

Node.js连接MSSQL报ESOCKET错误无法连接1433端口如何解决

MSSQL ESOCKET连接错误排查与修复方案

错误根因梳理

  1. 配置存在认证逻辑冲突:同时配置了SQL身份验证的sa账号密码,和trustedconnection: true的Windows可信认证,二者互斥会导致认证失败
  2. 配置项大小写不符合规范:mssql库的配置项为大小写敏感,你写的trustedconnection、instancename为全小写,不符合官方驼峰命名要求,会导致配置不生效
  3. 端口与实例名配置冲突:SQLEXPRESS实例默认使用动态端口,你同时配置了实例名和固定端口1433,会导致驱动无法正确识别连接目标
  4. 底层网络/服务配置异常:MSSQL的TCP/IP协议未启用、1433端口被防火墙拦截、sa账号未启用都会触发该报错

可落地修复步骤

  • 第一步:修正dbconfig.js配置
    根据你的使用场景二选一配置即可,本地开发使用sa账号登录推荐如下配置:
const config = {
  user: 'sa',
  password: '123456',
  server: '127.0.0.1',
  database: 'sportsxdb',
  options: {
    trustedConnection: false, // 关闭Windows可信认证,使用SQL账号登录
    enableArithAbort: true,
    instanceName: 'SQLEXPRESS', // 修正为驼峰命名
    trustServerCertificate: true // 跳过本地自签名证书校验,避免额外报错
  }
  // 保留instanceName时删除port配置,驱动会自动匹配实例端口
}

module.exports = config

如果需要固定用1433端口,就删除instanceName配置项,保留port:1433即可。

  • 第二步:开启MSSQL TCP/IP协议
    打开SQL Server配置管理器 -> 选择「SQL Server网络配置」-> 「SQLEXPRESS的协议」-> 右键TCP/IP选择「启用」-> 切换到IP地址选项卡,拉到最底部IPAll区域,清空TCP动态端口,TCP端口填写1433(仅固定端口场景需要)-> 保存后重启SQL Server(SQLEXPRESS)服务。
  • 第三步:验证端口连通性
    打开命令提示符执行telnet 127.0.0.1 1433,如果能正常跳转黑屏说明端口连通正常,报错的话需要在Windows防火墙添加入站规则,允许1433端口的TCP连接,也可以临时关闭防火墙测试。
  • 第四步:校验sa账号状态
    打开SSMS连接数据库,右键服务器选择「属性」->「安全性」,确认身份验证模式为「SQL Server和Windows身份验证模式」;再进入「安全性」->「登录名」-> 右键sa选择「属性」,确认密码正确、账号未被禁用、未锁定,修改后重启SQL服务生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:03