【问题标题】:SQL Server Native Client 11.0]TCP Provider: No such host is knownSQL Server Native Client 11.0]TCP 提供程序:不知道这样的主机
【发布时间】:2022-11-26 20:09:36
【问题描述】:

我一直在尝试从节点 js 连接到 Sql Server。但它抛出一个错误。这是我的代码连接代码:

const mssql = require('mssql/msnodesqlv8');

var config = {
    database : "chatbot",
    server : "LAPTOP-AR1H4E0R\SQLEXPRESS",
    driver:"msnodesqlv8",
    options:{
        // "instanceName":"SQLEXPRESS"
        trustedConnection:true
    }
};

mssql.connect(config, function(err) {
    if(err) {
        console.log("err", err)
    }
    else{
        console.log("connected")
    }
})

这是错误:

ConnectionError:错误:[Microsoft][SQL Server Native Client 11.0]TCP 提供程序:未知此类主机。 ,错误:[Microsoft][SQL Server Native Client 11.0] 登录超时已过期,错误:[Microsoft][SQL Server Native Client 11.0]建立与 SQL Server 的连接时发生了与网络相关或特定于实例的错误。服务器未找到或不可访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。 在 D:\Chatbot\agent-backend\node_modules\mssql\lib\msnodesqlv8\connection-pool.js:58:17 在立即。 (D:\Chatbot\agent-backend\node_modules\msnodesqlv8\lib\connection.js:147:15) 在 processImmediate (node:internal/timers:466:21) { 代码:未定义 }

这些是实例的连接凭据。它在 Management Studio 中正常工作。

【问题讨论】:

  • "LAPTOP-AR1H4E0R\\SQLEXPRESS",否则\S 被解释为转义序列。或者,使用 instanceName,但随后仅将主机指定为 LAPTOP-AR1H4E0R或者, 指定主机但完全省略实例——如果您有默认安装,SQLEXPRESS 实例将在默认端口 1433 上运行,并且在这种情况下不需要指定实例名称。
  • 附加说明:当使用实例名称时,SQL Browser 服务必须在目标服务器上运行(并且必须在 SQL Server 协议配置发生任何更改后重新启动),并且必须可以通过 Windows 防火墙和 udp/1434 上的网络防火墙访问.如果您已经知道实例正在侦听的 TCP 端口号,则更愿意直接使用它而不是实例名称 - 它可以降低脆弱性。

标签: node.js sql-server


【解决方案1】:
 const sql = require('mssql/msnodesqlv8');

//create a database configuration 

var config = {

server : "your servername\instancename", // eg:: DESKTOP_mjsi\MSSQLEXPRESS'
databse: "your db name",

/* if using sql server authentication you need to provide user name & password else not required for                       window authentication */
  user :'sa',
 password:"your password",

options :{
 trustedConnection:true,
},
driver:"msnodesqlv8",

}
//note: please make double ( \ ) before your instance name
if you get confused then please watch the video link at the bottom you 
can see in details about this

// now make the connections as 

sql.connect(config,function(err){
if(err)conole.log(err)

// make a request as

var request = new sql.Request();

//make the query

var query = "your query goes here";  // eg : "select * from tbl_name"

request.query(query,funnction(err,records){
    if(err)console.log(err);
    else{
       console.log(records);
       //  your out put as records  
    }
 }

})

要了解更多详细信息,请关注 https://www.youtube.com/watch?v=ePi0HIz-6pE

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生变化,仅链接答案可能会失效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 2019-05-19
  • 2021-11-17
  • 1970-01-01
  • 2020-06-20
相关资源
最近更新 更多