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

SQL Server Native Client 11.0连接失败求助(附Node.js连接代码)

排查Node.js(Express+msnodesqlv8)连接SQL Server的命名管道连接错误

问题详情

错误提示:SQL Server Native Client 11.0: 命名管道提供程序:无法打开与SQL Server的连接

我使用Node.js结合Express框架、msnodesqlv8驱动连接SQL Server时触发上述错误,代码片段如下:

var express = require('express'); 
var app = express(); 

app.get('/', function (req, res) { 
  var sql = require('mssql/msnodesqlv8'); 
  var config = { 
    driver: 'msnodesqlv8', 
    connectionString: 'Driver={SQL Server Native Client 11.0};Server=DESKTOP-QUUGSCT\SQLEXPRESS;Database=nodedb;Trusted_Connection=yes;', 
    // CONNECTION_NAME = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog="CatalogName";Data Source="Production_Server_Name;"" 
  }; 
  const pool = new sql.ConnectionPool(config);
  pool.connect()
    .then(() => res.send('连接成功'))
    .catch(err => {
      console.error(err);
      res.send('连接失败');
    });
});

排查与解决步骤

1. 修复连接字符串的转义错误

JavaScript字符串中的反斜杠\是转义字符,你当前的Server=DESKTOP-QUUGSCT\SQLEXPRESS会被解析成DESKTOP-QUUGSCTSQLEXPRESS,导致驱动找不到正确的实例。两种修复方式:

  • 使用双反斜杠:
    connectionString: 'Driver={SQL Server Native Client 11.0};Server=DESKTOP-QUUGSCT\\SQLEXPRESS;Database=nodedb;Trusted_Connection=yes;'
    
  • 使用ES6模板字符串(反引号)避免转义:
    connectionString: `Driver={SQL Server Native Client 11.0};Server=DESKTOP-QUUGSCT\SQLEXPRESS;Database=nodedb;Trusted_Connection=yes;`
    

2. 确认SQL Server服务运行状态

  • 按下Win+R输入services.msc打开服务管理器
  • 找到**SQL Server (SQLEXPRESS)**服务,确保状态为「正在运行」。若未启动,右键选择「启动」,并设置启动类型为「自动」避免下次重启后失效。

3. 启用SQL Server的命名管道协议

命名管道是你当前连接使用的协议,若未启用会直接导致连接失败:

  • 打开SQL Server配置管理器(可通过开始菜单搜索找到)
  • 展开「SQL Server网络配置」→「SQLEXPRESS的协议」
  • 右键点击「命名管道」选择「启用」,之后重启SQL Server服务生效。

4. 验证Windows身份验证权限

你的连接字符串使用Trusted_Connection=yes(Windows身份验证),需确保:

  • 打开SQL Server Management Studio(SSMS),用Windows身份验证登录DESKTOP-QUUGSCT\SQLEXPRESS实例
  • 右键服务器→「属性」→「安全性」,确认服务器身份验证模式包含「Windows身份验证模式」
  • 检查当前Windows用户对nodedb数据库有至少「连接」权限(可在数据库→「安全性」→「用户」中配置)

5. 用SSMS先测试连接

如果SSMS都无法连接到DESKTOP-QUUGSCT\SQLEXPRESS,说明问题出在SQL Server配置而非Node.js代码。先解决SSMS的连接问题,再回到代码测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:48:11