使用mssql为node.js连接到SQL Server

时间:2014-01-18 12:57:22

标签: sql-server node.js node-mssql tedious

当我使用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'
};

4 个答案:

答案 0 :(得分:14)

使用此配置使用繁琐的驱动程序时,您应该能够连接到命名实例:

var config = {
    user: '...',
    password: '...',
    server: '192.168.1.101',
    driver: 'tedious',
    database: 'ACCOUNTDB',
    options: {
        instanceName: 'sql'
    }
};

Documentation也说:

  

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版)

  • 在左侧标签中,单击“ SQL Server服务”
  • 现在在右侧标签中,双击SQL Server Browser
  • 将打开一个窗口,您将看到3个标签,转到“服务”标签
  • 将开始模式更改为“自动”并应用
  • 左键单击“ SQL Server浏览器”,然后单击“重新启动”
  • 返回到右侧选项卡,单击“ SQL Server网络配置”
  • 然后是客户端协议
  • 更改TCP / IP以启用

答案 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