重装系统后Node.js连接SQL Server 2019实例超时求助
解决Node.js连接SQL Server 2019的ETIMEOUT超时问题
1. 修复连接配置的冲突项
你的配置同时启用了Windows身份验证(trustedConnection: true)和SQL Server身份验证(user/password),这会导致身份验证逻辑冲突,必须二选一:
- 用Windows身份验证:删除
user和password字段,保留trustedConnection: true
const config = { server: "DESKTOP-5AHM8D2\\SQLNEW", database: "fyp", options: { encrypt: true, trustedConnection: true, trustServerCertificate: true }, };
- 用SQL Server身份验证:删除
trustedConnection: true,确保Admin是SQL Server中创建的合法登录账号
const config = { server: "DESKTOP-5AHM8D2\\SQLNEW", database: "fyp", user: "Admin", password: "admin123", options: { encrypt: true, trustServerCertificate: true }, };
另外,配置中的host字段属于冗余项,server已包含实例地址,可直接删除。
2. 确认TCP/IP端口配置与监听
- 打开SQL Server配置管理器,定位到SQL Server网络配置 > SQLNEW的协议
- 右键TCP/IP选择「属性」,切换到「IP地址」标签
- 拉至底部
IPAll区域,确认TCP端口为1433(默认)或你的自定义端口 - 若使用非默认端口,需在连接配置的
options中添加port字段:
options: { encrypt: true, trustServerCertificate: true, port: 1433 // 替换为实际端口号 }
- 用命令行验证端口监听:
netstat -ano | findstr :1433
能看到对应PID则说明端口正常监听,否则重启SQL Server服务后重试。
3. 检查Windows防火墙拦截
- 打开Windows Defender防火墙高级设置,添加入站规则,允许SQL Server端口(默认1433)的TCP连接
- 可临时关闭防火墙做测试,若能连接则说明是防火墙拦截了请求
4. 验证实例与账号权限
- 用SSMS以相同身份验证方式连接
DESKTOP-5AHM8D2\SQLNEW,确认能正常访问fyp数据库 - 若用SQL Server身份验证,检查
Admin账号是否启用,且拥有fyp数据库的访问权限
内容的提问来源于stack exchange,提问作者Ahmad Imran
相关产品推荐
相关产品推荐

