使用 IP 地址将 Node.js 连接到 SQL Server

Connecting Node.js to SQL Server Using IP Address

提问人:NgThang2001 提问时间:11/17/2023 最后编辑:Amit MohantyNgThang2001 更新时间:11/17/2023 访问量:30

问:

我正在尝试使用 IP 地址而不是“本地主机”或“127.0.0.1”建立从 Node.js 到 SQL Server 的连接。这是我的代码:

const sql = require('mssql/msnodesqlv8');

const config = {
    user: 'sa',
    password: '123456',
    server: '172.20.10.1',
    database: 'coffee',
    options: {
        encrypt: true, 
    },
};

sql.connect(config)
    .then(pool => {
        console.log('Connected to SQL Server');
        return pool.request().query('SELECT * FROM coffee_info');
    })
    .then(result => {
        console.log(result.recordset);
    })
    .catch(err => {
        console.error('Error:', err);
    })
    .finally(() => {
        sql.close();
    });

此代码在使用“localhost”或“127.0.0.1”时有效,但在使用“172.20.10.1”等 IP 地址时遇到错误:

错误:连接错误:错误:[Microsoft][SQL Server 本机客户端 11.0]TCP 提供程序:无法建立连接,因为目标计算机主动拒绝了它。

错误:[Microsoft][SQL Server 本机客户端 11.0]登录超时已过期,错误:[Microsoft][SQL Server 本机客户端 11.0]与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

在 PrivateConnection.callback2 (C:\Users\Nguyen Duc Thang\StudioProjects\coffee\lib\backend\node_modules\mssql\lib\msnodesqlv8\connection-pool.js:46:17)
立即。(C:\Users\Nguyen Duc Thang\StudioProjects\coffee\lib\backend\node_modules\msnodesqlv8\lib\connection.js:43:14)
在 process.processImmediate (node:internal/timers:476:21) {
code: undefined

}

我正在尝试将 IP 地址用于虚拟 Android 环境。我正在寻求有关如何正确配置连接的指导,或者在此上下文中使用 IP 地址成功建立与 SQL Server 的连接所需的任何潜在步骤。任何解决此问题的意见或建议将不胜感激。谢谢!

节点.js SQL服务器

评论

0赞 derpirscher 11/17/2023
"因为目标计算机主动拒绝了它“ 该计算机上的端口 1433(SQL Server 的默认端口)上没有进程侦听,或者该计算机上的防火墙不允许端口 1433 上的连接。检查防火墙,检查 SQL Server 是否正在运行,并检查它是否配置为 TCP/IP 连接,以及它是否允许远程连接。
0赞 AlwaysLearning 11/17/2023
NodeJS 计算机是否实际上与 SQL Server 位于同一网络中?172.16.0.0/12网段(172.16.0.0-172.31.255.255)是内网,其他网络认为是不可路由的。即:网络路由器不会尝试将流量转发到/转发出它。
0赞 derpirscher 11/17/2023
@AlwaysLearning,如果“目标机器主动拒绝它”,则已找到指向目标的路由。

答: 暂无答案