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

Node.js连接SQL Server报错:[SQL Server Native Client 11.0]TCP主机未知

Node.js连接SQL Server报错排查

问题场景

用Node.js连接SQL Server时触发网络连接错误,但相同的连接凭证在SQL Server Management Studio(SSMS)中可正常使用。

连接代码

const mssql = require('mssql/msnodesqlv8');

var config = {
    database : "chatbot",
    server : "LAPTOP-AR1H4E0R\SQLEXPRESS",
    driver:"msnodesqlv8",
    options:{
        // "instanceName":"SQLEXPRESS"
        trustedConnection:true
    }
};

mssql.connect(config, function(err) {
    if(err) {
        console.log("err", err)
    }
    else{
        console.log("connected")
    }
})

报错信息

ConnectionError: Error: [Microsoft][SQL Server Native Client 11.0]TCP Provider: 找不到指定的主机。
,Error: [Microsoft][SQL Server Native Client 11.0]登录超时已过期,Error: [Microsoft][SQL Server Native Client 11.0]建立到SQL Server的连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。有关详细信息,请参阅SQL Server联机丛书。
at D:\Chatbot\agent-backend\node_modules\mssql\lib\msnodesqlv8\connection-pool.js:58:17
at Immediate. (D:\Chatbot\agent-backend\node_modules\msnodesqlv8\lib\connection.js:147:15)
at processImmediate (node:internal/timers:466:21) {
code: undefined
}

补充说明

SQL Server实例的连接凭证在SSMS中可正常使用,连接凭证截图如下:
连接凭证截图

解决办法

  • 转义服务器名称中的反斜杠:JavaScript字符串里的反斜杠是转义字符,原代码中server值的反斜杠会被解析错误,需改成双反斜杠:
    server : "LAPTOP-AR1H4E0R\\SQLEXPRESS"
    
  • 启用SQL Server的TCP/IP协议:打开SQL Server配置管理器,找到对应实例(SQLEXPRESS),在「SQL Server网络配置」里启用TCP/IP协议,之后重启SQL Server服务。
  • 明确指定实例名称:取消options中instanceName的注释,显式声明实例名:
    options:{
        "instanceName":"SQLEXPRESS",
        trustedConnection:true
    }
    
  • 替换机器名为localhost:如果机器名解析存在问题,尝试用localhost\\SQLEXPRESS作为server的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:33:26