我已经在stackoverflow中搜索了很多关于这个问题的问题但是没有我能找到解决方案。
我有2台服务器。测试A:运行Linux ubuntu 14.04,测试B:Windows服务器2008.两台服务器都在同一网络中。
测试B:运行MSSQL服务器的Windows服务器。我检查了它正在运行的TCP/IP enabled
,端口是1433
(IPALL)。我确认SQL server browser
正在服务器中运行。 PORT也在网络内部打开。
现在来自测试A:我正在尝试使用PORT 1433连接测试B的MSSQL以及网络中机器的私有IP。但我得到Error creating connection pool { Error: Failed to connect to PRIVATEIP:1433 in 1500ms
。
我在同一个网络测试C中有一台机器,它是一台Windows 7机器。我使用SQL服务器管理工作室和相同的节点脚本,在这种情况下从Windows 7它工作正常。我可以使用相同的代码和配置连接到SQL服务器。
我正在使用Express, MSSQL
包连接到MSSQL服务器。我也使用过tedious
但同样的问题。
var express = require("express");
var sql = require("mssql");
var config = require("./config.json");
console.log(config.mssql); // i can see the mssql configs here
var conPool = new sql.ConnectionPool(config.mssql);
var app = express();
var PORT = 8080;
conPool.connect(function(err){
if(err){
console.error('Error creating connection pool', err);
} else {
console.log('Connection pool is opened');
app.use(function (req, res, next) {
req.cp = conPool;
next();
})
require('./routes')(app);
app.listen(PORT, function () {
console.log("Server started in port", PORT);
})
}
});
连接字符串位于下方。
{
"mssql": {
"user": "username",
"password": "password",
"server": "10.789.456.123",
"database": "Database",
"port": 1433,
"dialect": "mssql",
"dialectOptions": {
"instanceName": "MSSQLEXPRESS"
},
"pool": {
"min": 2,
"max": 10
}
}
}
我不知道是否要在linux中安装一些mssql驱动程序或其他一些问题。但只有从linux我无法访问。