Node.js 使用 msSQL连接报错

config: function () {
    return {
      user: 'sa',                       //SQL Server 的登录名
      password: '843192',               //SQL Server 的登录密码
      server: 'localhost',              //SQL Server 的地址
      database: 'dbAccount',                 //数据库名称
      port: 57575,                       //端口号,默认为1433
      pool: {
        min: 0,                         //连接池最小连接数,默认0
        max: 100,                        //连接池最大连接数,默认10
        idleTimeoutMillis: 30000       //设置关闭未使用连接的时间,单位ms默认30000
      },
      /*--其他属性--*/
      // connectionTimeout:             //连接timeout,单位ms 默认 15000
      // requestTimeout:                //请求timeout,单位ms默认15000
      // parseJSON:                     //将json数据集转化成json obj 
    }
  }
}

以下是终端报错信息

Database Connection Failed! Bad Config: ConnectionError: Failed to connect to localhost:57575 - 9740:error:1425F102:SSL
routines:ssl_choose_client_version:unsupported protocol:c:\ws\deps\openssl\openssl\ssl\statem\statem_lib.c:1994:

    at G:\MyAPP\missjunshop\service\node_modules\mssql\lib\tedious\connection-pool.js:70:17
    at Connection.onConnect (G:\MyAPP\missjunshop\service\node_modules\tedious\lib\connection.js:1051:9)
    at Object.onceWrapper (node:events:640:26)
    at Connection.emit (node:events:520:28)
    at Connection.emit (G:\MyAPP\missjunshop\service\node_modules\tedious\lib\connection.js:1079:18)
    at Connection.socketError (G:\MyAPP\missjunshop\service\node_modules\tedious\lib\connection.js:1425:12)
    at Socket.<anonymous> (G:\MyAPP\missjunshop\service\node_modules\tedious\lib\connection.js:1190:14)
    at Socket.emit (node:events:532:35)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3) {
  code: 'ESOCKET',)

数据库使用Navicat 连接时不出现问题
前端POST请求查询数据库 验证账号密码 但在连接时就报错了。
数据库为JSQL2008 Sp2

错误提示

 Connection Failed! Bad Config:

问题
数据库服务拒绝被访问

解决方法
1、检查Mysql数据库是否启动
2、检查数据库配置是否正确,
包括用户名密码 ip和端口号、数据库名称之类的,大概率这个报错,因为提示说了数据库错误。

如有问题及时沟通

img


配置错了,考虑是不是打开本地端口错误

你可以看一下这个 最好还是不要用SQL 直接用Apifox这个软件 啥都解决了

你用SQL链接了就是登录不上去 ,不是端口的问题就是信息不匹配,或者是没有配置好
https://blog.csdn.net/sl331639/article/details/1173756

Driver={SQL Server}替换成对应版本的驱动

var sql=require('msnodesql');
var conn_str="Driver={SQL Server};Server={.};Database={dbAccount};uid=sa;PWD=843192;port=57575;";
 
sql.open(conn_str, function (err, conn) {
        if (err) {
            console.log('发生错误');
        }
 
        sql.queryRaw(conn_str, "select * from users", function (err, results) {
            if (err) {
                console.log(err);
            }
            else {
                for (var i = 0; i < results.rows.length; i++) {
                    console.log(results.rows[i][0] + results.rows[i][1]);
                }
            }
        })
 
    })

openssl版本问题

参考一下这个博主的文章吧 https://www.cnblogs.com/wushaoliang/p/14764922.html