【问题标题】:Connect to SQL Server with mssql for node.js使用 mssql for node.js 连接到 SQL Server
【发布时间】:2014-01-18 12:57:21
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    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};"
    };
    

    【讨论】:

    • 根据我的经验,我需要使用“用户名”(区分大小写)而不是“用户”。
    • 完美运行,拯救了我的一天。谢谢!
    【解决方案2】:

    好的,我遇到了同样的问题,会尽力提供帮助。这是我的配置示例

    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 Browser 并单击重新启动
    • 返回右侧选项卡单击 SQL Server 网络配置
    • 然后是客户端协议
    • 更改 TCP/IP 以启用

    【讨论】:

      【解决方案3】:

      让我印象深刻的是 port 和 instanceName 是互斥的。这意味着您只需要其中一个。

      【讨论】:

      • 这将更适合作为评论而不是答案。
      【解决方案4】:

      我最近遇到了这个问题,我试图连接托管在远程服务器上的 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

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 1970-01-01
        • 2016-04-21
        • 2016-09-09
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        • 2020-03-18
        • 2016-02-16
        相关资源
        最近更新 更多