繁体   English   中英

连接到 SQL 服务器时出现超时错误:连接错误:无法在 15000 毫秒内连接到 servername\instancename

[英]Timeout error while connecting to SQL Server: Connection Error: Failed to connect to servername\instancename in 15000ms

错误代码是代码ETIMEOUT 我正在使用 SQL Server 2014,NodeJs 版本 v12.16.2,我在 Visual Studio Code 中运行此代码。

我已经创建了数据库,并且表也创建了一些记录。 对于服务器名称,我也尝试过提供 FQDN,但没有成功。

这是代码片段:

const express = require('express');
const app = express();
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
app.get('/', function(req, res) {
   res.send('<hHii</h');
});
const sql = require('mssql');
var config = {
   user: 'domain\username',
   password: 'mypwd',
   server: 'servername',
   host: 'hostname',
   port: '1433',
   driver: 'tedious',
   database: 'DBname',
   options: {
      instanceName: 'instancename'
   }
};
sql.connect(config, function(err) {
   if (err)
      console.log(err);
   let sqlRequest = new sql.Request();
   //var sqlRequest = new sql.Request(connection)
   let sqlQuery = 'SELECT * from TestTable';
   sqlRequest.query(sqlQuery, function(err, data) {
      if (err) console.log(err);
      console.log(data);
      //console.table(data.recordset);
      // console.log(data.rowAffected);
      //console.log(data.recordset[0]);
      sql.close()
   });
});
const webserver = app.listen(5000, function() {
   console.log('server is up and running....');
});

错误:

tedious deprecated The default value for `config.options.enableArithAbort` will change from `false` to `true` in the next major version of `tedious`. Set the value to `true` or`false` explicitly to silence this message.   

node_modules\mssql\lib\tedious\connection-pool.js:61:23  
server is up and running....  

ConnectionError: Failed to connect to servername\instantname in 15000ms

at Connection.<anonymous(..\SQL\Sample\sample\node_modules\mssql\lib\tedious\connection-pool.js:68:17)  
at Object.onceWrapper (events.js:417:26)  
at Connection.emit (events.js:310:20)  
at Connection.connectTimeout (..\SQL\Sample\sample\node_modules\tedious\lib\connection.js:1195:10)  
at Timeout._onTimeout (..\SQL\Sample\sample\node_modules\tedious\lib\connection.js:1157:12)  
at listOnTimeout (internal/timers.js:549:17)  
at processTimers (internal/timers.js:492:7) {  
   code: 'ETIMEOUT',
   originalError: ConnectionError: Failed to connect to INPUNPSURWADE\DA in 15000ms

   at ConnectionError (..\SQL\Sample\sample\node_modules\tedious\lib\errors.js:13:12)  
   at Connection.connectTimeout (..\SQL\Sample\sample\node_modules\tedious\lib\connection.js:1195:54)  
   at Timeout._onTimeout (..\SQL\Sample\sample\node_modules\tedious\lib\connection.js:1157:12)  
   at listOnTimeout (internal/timers.js:549:17)  
   at processTimers (internal/timers.js:492:7) {  
      message: 'Failed to connect to servername\instantname in 15000ms',
      code: 'ETIMEOUT'
    },
    name: 'ConnectionError'
  }

ConnectionError: Connection is closed.

at Request._query (..\SQL\Sample\sample\node_modules\mssql\lib\base\request.js:462:37)  
at Request._query (..\SQL\Sample\sample\node_modules\mssql\lib\tedious\request.js:346:11)  
at Request.query (..\SQL\Sample\sample\node_modules\mssql\lib\base\request.js:398:12)  
at Immediate.<anonymous(..\SQL\Sample\sample\index.js:43:12)      
at processImmediate  (internal/timers.js:458:21) {
   code: 'ECONNCLOSED',  
   name: 'ConnectionError'  
}
  1. Go 到 Windows 中的开始菜单,搜索“服务”并打开它。
  2. 查找“SQL Server 浏览器”
  3. 右键单击它和 go 到属性。
  4. 将“启动类型”切换为“自动”
  5. 点击确定
  6. 再次右键单击它并启动服务。

它应该在那之后工作!

您可能在主机/端口中打错字,或者服务器不监听外部接口(它可能配置为仅 127.0.0.1)

要检查服务器是否正在侦听传入连接,请在终端中运行以下命令:

telnet <hostname> <port>

(仅限 mac/linux)如果显示“无法连接到远程主机:连接被拒绝”,则表示主机在那里,但它不监听端口。 如果它显示“无法连接到远程主机:连接超时”,那么主机可能不存在,也不会监听端口。

您可能还想检查您的防火墙是否允许连接到该服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM