Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法在15000ms内连接到mydb.database.windows.net:1433(Microsoft Azure SQL数据库)_Node.js_Sql Server_Azure Sql Database - Fatal编程技术网

Node.js 无法在15000ms内连接到mydb.database.windows.net:1433(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

我可以使用以下代码从Microsoft Azure SQL数据库中检索数据:-

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套接字挂起

我知道以前有人问过这个问题。但我已经尝试了所有的解决方案。没有一个解决方案是专门针对Microsoft Azure SQL数据库的,所以我认为数据库中可能存在一些问题


提前谢谢。

您的代码与我的代码有点不同,我的
选项用双引号括起来。你也可以,它对我有效,我已经测试过了

提示:

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%的请求失败。我试过你的代码,但仍然没有区别。