You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Node.js连接SQL Server时遭遇ECONNREFUSED连接拒绝错误的技术问询

排查并解决Node.js连接SQL Server的ECONNREFUSED错误

兄弟,看了你的问题和代码,马上发现两个关键问题导致了连接失败,咱们一步步来解决:

核心问题分析

首先,你犯了两个典型的搭配错误:

  • 你用的是mysql Node.js模块,但要连接的是SQL Server——这个模块是专门给MySQL数据库设计的,和SQL Server完全不兼容!
  • 错误里的端口是3306,这是MySQL的默认端口,而SQL Server的默认端口是1433,端口不匹配肯定连不上。

分步解决步骤

1. 替换为SQL Server专用的连接模块

先安装官方推荐的mssql模块(这是Node.js连接SQL Server的标准库):

npm install mssql

然后把你的连接代码改成下面这样,注意配置项的差异:

const sql = require('mssql');

// 配置SQL Server连接参数
const sqlConfig = {
  user: '你的SQL Server用户名',
  password: '你的密码',
  database: '目标数据库名',
  server: '172.24.68.210', // 直接用错误里的IP,或者替换成你的hostname
  port: 1433, // SQL Server默认端口,如果你的服务器改了端口就填对应值
  options: {
    encrypt: true, // 如果是Azure SQL或者生产环境需要加密连接就开启
    trustServerCertificate: true // 开发环境可以开这个,避免证书验证报错
  }
};

// 测试连接的异步函数
async function testConnection() {
  try {
    await sql.connect(sqlConfig);
    console.log('成功连上SQL Server啦!');
  } catch (err) {
    console.error('连接失败详情:', err);
  }
}

// 执行测试
testConnection();

2. 检查SQL Server的网络配置

光改代码还不够,得确保你的SQL Server本身允许外部连接:

  • 打开SQL Server配置管理器,找到「SQL Server网络配置」→ 对应你的服务器实例的「协议」→ 启用「TCP/IP」协议,然后重启SQL Server服务生效。
  • 打开SQL Server Management Studio,右键你的服务器 → 「属性」→ 「连接」→ 勾选「允许远程连接到此服务器」。
  • 检查服务器的防火墙:确保1433端口(或者你自定义的SQL Server端口)已经开放,允许你的Node.js机器访问。

3. 验证网络连通性

在你的Node.js机器上先测能不能通目标服务器:

# 先ping一下看网络可达性
ping 172.24.68.210

# 再测端口是否开放(Windows用这个)
Test-NetConnection 172.24.68.210 -Port 1433

# Linux/macOS用telnet或者nc
telnet 172.24.68.210 1433

如果端口不通,那肯定是防火墙或者网络路由的问题,得先搞定这个才能继续。

4. 确认账号权限

最后检查你用的SQL Server账号:

  • 确保账号有登录目标服务器的权限,并且允许从你的客户端IP登录(SQL Server的登录账号默认可能只允许本地登录)。
  • 确认账号有权限访问目标数据库。

内容的提问来源于stack exchange,提问作者Vaibhav vj

火山引擎 最新活动