当我使用node {js的mssql
模块连接到SQL Server时收到错误消息。
[错误:连接到192.168.1.101 \ sql:1433 - 失败错误:getaddrinfo ENOENT]
var config = {
//driver: 'msnodesql',
user: '...',
password: '...',
server: '192.168.1.101\\sql',
//TCP/IP 127.0.0.1
database: 'ACCOUNTDB'
};
答案 0 :(得分:14)
使用此配置使用繁琐的驱动程序时,您应该能够连接到命名实例:
var config = {
user: '...',
password: '...',
server: '192.168.1.101',
driver: 'tedious',
database: 'ACCOUNTDB',
options: {
instanceName: 'sql'
}
};
SQL Server Browser服务必须在数据库服务器上运行, 必须可以访问数据库服务器上的UDP端口1444。
msnodesql驱动程序的配置稍微复杂一点,因为它的连接字符串默认情况下不支持命名实例(将来应该更改):
var config = {
user: '...',
password: '...',
server: '192.168.1.101',
driver: 'msnodesql',
database: 'ACCOUNTDB',
connectionString: "Driver={SQL Server Native Client 11.0};Server=#{server}\\sql;Database=#{database};Uid=#{user};Pwd=#{password};"
};
答案 1 :(得分:1)
引起我注意的是port和instanceName是互斥的。这意味着你只需要一个或另一个。
答案 2 :(得分:0)
好的,我遇到了同样的问题,将尝试提供帮助。这是我的配置示例
const config = {
user: 'sa',
password: '****',
server: 'DESKTOP-Q5TO47P',
database: 'dbname',
options: {
encrypt: false
}
};
您需要打开SQL Server浏览器。转到启动菜单或搜索,然后查找SQL Server配置管理器。运行! (我使用的是2018版)
答案 3 :(得分:0)
我最近遇到了这个问题,我试图连接托管在远程服务器上的 MSSQL。我必须使用的配置是-
let config = {
user: 'user',
password: 'password',
server: 'server',
database: 'database',
"options":{
instanceName: 'instanceName',
"encrypt":true,
"enableArithAbort":true,
"trustServerCertificate": true,
}
};
module.exports=config;
要获取实例名称,请在 SSMS 中使用 SELECT @@servicename