无法从Node连接到SQL Server

时间:2017-03-30 07:11:19

标签: sql-server node.js

我使用这些版本:

node v4.7.3
mssql v3.2.1

我使用mssql模块连接服务器,mssql的文档是here

SQL服务器在Windows上运行,我在Windows系统中运行以下命令来确认SQL服务器的状态:

> netstat -ano | findstr 1433
 TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1452
 TCP    127.0.0.1:1433         127.0.0.1:50093        ESTABLISHED     1452
 TCP    127.0.0.1:50093        127.0.0.1:1433         ESTABLISHED     3636

然后我使用nc来测试服务器的端口:

$ nc -z msserver 1433
Connection to msserver port 1433 [tcp/ms-sql-s] succeeded!

表示我可以连接端口。

但是,我无法通过mssql模块将服务器连接到以下配置:

{
  user: 'sa',
  password: 'pwd',
  server: 'msserver',
  port: '1433',
  database: 'dbname',
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000,
  },
  requestTimeout: 0,
  connectionTimeout: 15000,
  debug: true,
}

我使用debug: true获取调试信息,如下所示:

connected to msserver:1433

Sent
  type:0x12(PRELOGIN), status:0x01(EOM), length:0x002F, spid:0x0000, packetId:0x01, window:0x00
  PreLogin - version:0.0.0.1 1, encryption:0x02(NOT_SUP), instopt:0x00, threadId:0x00000000, mars:0x00(OFF)
State change: Connecting -> SentPrelogin
socket ended
State change: SentPrelogin -> Final
connection to msserver:1433 closed
State is already Final

我的代码在这里:

mssql.connect(config.mssql).then(function() {
  console.log('connected');
  new mssql.Request().query('select top 1 * from qmx.dbo.QMXStockPool order by ID desc', (err, records) => {
    console.log(err, records);
  });
}).catch(function(err) {
  console.log(err);
});

没有输出,没有错误,很快就完成了。

1 个答案:

答案 0 :(得分:2)

从评论中可以看出,SQL Server的错误日志文件中记录了此错误:

  

无法连接,因为已达到“4”用户连接的最大数量。

这意味着某人明确设置了最大并发连接限制。默认为无限连接。

解决方案是将值更改回默认值0 = unmlimited。 GUI方式是打开SSMS,转到服务器属性中的Connections选项卡,然后将Maximum number of concurrent connections设置为0。 enter image description here

Error while connecting to SQL Server – “Could not connect because the maximum number of ‘1’ user connections has already been reached.”和其他许多文章中描述的另一个选项是使用sqlcmd从命令行进行连接并更改配置设置:

sp_configure 'show advanced options', 1;  
go 

reconfigure 
go 

sp_configure 'user connections', 0  
go 

reconfigure 
go