飘落の枫 2021-09-26 09:30 采纳率: 33.3%
浏览 250
已结题

NodeJs使用mssql模块连接sql server数据库报错

我在NodeJs中使用mssql模块连接sql server数据库报错。报错:

ConnectionError: Failed to connect to 111.222.333.44\SQLSERVER2014 in 15000ms
    at E:\nodejs\node_modules\mssql\lib\tedious\connection-pool.js:71:17
    at Connection.onConnect (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1043:9)
    at Object.onceWrapper (node:events:514:26)
    at Connection.emit (node:events:394:28)
    at Connection.emit (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1071:18)
    at Connection.connectTimeout (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1530:10)
    at Timeout._onTimeout (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1475:12)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7) {
  code: 'ETIMEOUT',
  originalError: ConnectionError: Failed to connect to 111.222.333.44\SQLSERVER2014 in 15000ms
      at ConnectionError (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\errors.js:13:12)
      at Connection.connectTimeout (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1530:54)
      at Timeout._onTimeout (E:\nodejs\node_modules\mssql\node_modules\tedious\lib\connection.js:1475:12)
      at listOnTimeout (node:internal/timers:557:17)
      at processTimers (node:internal/timers:500:7) {
    code: 'ETIMEOUT'

路由JS代码如下:

var sql = require('mssql');
    var dbConfig = {
        user: 'sa',
        password: 'sa@123,',
        server: '111.222.333.44\\SQLSERVER2014',
        database: 'PhotovoltaicDB',
        port:5202,
        pool: {
            max: 10,
            min: 0,
            idleTimeoutMillis: 30000
        }
    };
    // 查询所有的用户信息
    function getAllUsers() {
        var conn = new sql.ConnectionPool(dbConfig);
        //console.log(conn);
        var req = new sql.Request(conn);
        conn.connect(function (err) {  //就在这句报错,应该是不知道为什么连接失败
            if (err) {
                console.log(err);
                return;
            }
            // 查询t_user表
            req.query("SELECT * FROM t_user", function (err, recordset) {
                if (err) {
                    console.log(err);
                    return;
                }
                else {
                    console.log(recordset);
                }
                conn.close();
            });
        });
    }
    // 查询所有的用户信息
    getAllUsers();

sql server数据库地址没有问题,需要填写数据库实例名,而且密码带@和,两个特殊字符,所以不知道咋用连接串的形式进行拼接。NodeJs电脑使用sql server软件直接可以远程连接入数据库。试过好几种方法了,都是在连接的时候报错。求碰到过或者知道怎么解决的帮忙解答一下。对了,我sql server要连接的2014版本。用的mssql是直接npm上引入的,引入的时候也没有报错。而且也试了删除重新引入。

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-09-26 09:37
    关注

    看了下mssql模块文档,server指定为ip\实例名这种内容,需要为默认的端口1433,不能改其他端口,也不能配置port。

    alt


    如果指定在server配置成ip,端口\实例名 这种内容,会出现getaddrinfo ENOTFOUND (localdb) at Connection.tedious.once.err错误

    可以安装msnodesqlv8模块,使用和mssql一样,支持server配置为ip,端口\实例名,端口不要设置

    alt

    有帮助麻烦点个采纳【本回答右上角】,谢谢~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 修改了问题 9月26日
  • 修改了问题 9月26日
  • 展开全部

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路