Node.js 无法在15000ms内连接到mydb.database.windows.net:1433(Microsoft Azure SQL数据库)
我可以使用以下代码从Microsoft Azure SQL数据库中检索数据:-Node.js 无法在15000ms内连接到mydb.database.windows.net:1433(Microsoft Azure SQL数据库),node.js,sql-server,azure-sql-database,Node.js,Sql Server,Azure Sql Database,我可以使用以下代码从Microsoft Azure SQL数据库中检索数据:- const sql = require("mssql"); var config = { user: "user_name", password: "Pass@1234", server: "mydb.database.windows.net", database: "db_name", opti
const sql = require("mssql");
var config = {
user: "user_name",
password: "Pass@1234",
server: "mydb.database.windows.net",
database: "db_name",
options: {
enableArithAbort: true,
},
stream: true,
};
module.exports = function getQueryResult(query) {
return new Promise((res, rej) => {
sql.connect(config).then((pool) => {
pool.query(query, (err, result) => {
if (err) rej(err);
res(result);
});
});
});
};
我正在使用getQueryResult
函数从数据库中获取数据
一切都很顺利接受以下错误发生在两者之间的事实
无法连接到mydb.database.windows.net:1433 in 15000ms(Microsoft Azure SQL数据库)
ConnectionError:无法连接到mydb.database.windows.net:1433 read-ECONNRESET
ConnectionError:无法连接到mydb.database.windows.net:1433套接字挂起
提前谢谢。您的代码与我的代码有点不同,我的
选项用双引号括起来。你也可以,它对我有效,我已经测试过了
提示:
const sql = require('mssql')
const config = {
user: 'username',
password: 'pwd',
server: '***sqlserver.database.windows.net', // You can use 'localhost\\instance' to connect to named instance
database: 'yourdb',
"options": {
"encrypt": true,
"enableArithAbort": true
}
}
const poolPromise = new sql.ConnectionPool(config)
.connect()
.then(pool => {
console.log('Connected to MSSQL')
return pool
})
.catch(err => console.log('Database Connection Failed! Bad Config: ', err))
module.exports = {
sql, poolPromise
}
您需要设置防火墙的规则。确保您的本地或webapp可以访问dbserver
我的代码:
const sql = require('mssql')
const config = {
user: 'username',
password: 'pwd',
server: '***sqlserver.database.windows.net', // You can use 'localhost\\instance' to connect to named instance
database: 'yourdb',
"options": {
"encrypt": true,
"enableArithAbort": true
}
}
const poolPromise = new sql.ConnectionPool(config)
.connect()
.then(pool => {
console.log('Connected to MSSQL')
return pool
})
.catch(err => console.log('Database Connection Failed! Bad Config: ', err))
module.exports = {
sql, poolPromise
}
您可以从您机器上的SSMS查询该数据库吗?如果是,请尝试从您的计算机执行该代码,并告诉我该代码是否有效。与Azure对话时,您需要在config.options中输入encrypt:true
,但这应该会立即失败。似乎在你的节点服务器和Azure之间的某个地方有一个防火墙。@Always学习如果我通过encrypt:true
则没有任何区别。但如果我通过了encrypt:false
,那么什么都不起作用。我不会在连接中出错。一切正常,但5%的请求失败。我试过你的代码,但仍然没有区别。