Electron应用无法连接SQL Server服务器问题求助
Electron + mssql 无法连接SQL Server的排查与解决
核心配置错误修复
1. 服务器地址转义问题
JavaScript字符串里的反斜杠是转义字符,你配置中的server: 'SERVER\DB'会被解析为错误地址,必须改成双反斜杠:
server: 'SERVER\\DB'
或者直接用斜杠替代反斜杠:
server: 'SERVER/DB'
2. 身份认证方式冲突
你的配置同时启用了SQL Server账号认证(user+password)和Windows集成认证(trustedConnection: true),两种方式不能共存,二选一即可:
- 若用SQL认证(和SSMS的
sa账号一致):将options里的trustedConnection改为false - 若用Windows集成认证:删除配置中的
user和password字段
3. 端口与地址格式匹配
SSMS使用tcp:SERVER/DB,1433格式,对应mssql配置可以直接指定TCP协议的完整地址,同时注意端口应为数字类型(你原配置写的是字符串,可能导致解析异常):
server: 'tcp:SERVER\\DB,1433'
或者分开指定实例名和端口:
server: 'SERVER\\DB', port: 1433, // 改为数字
修正后的配置示例
SQL Server账号认证版本
var dbConfig = { user: 'sa', password: '123456', server: 'SERVER\\DB', port: 1433, trustServerCertificate: true, database: 'APPDATA', requestTimeout: 600000, options: { trustedConnection: false, useUTC: true }, pool: { idleTimeoutMillis: 600000, } }
Windows集成认证版本
var dbConfig = { server: 'SERVER\\DB', port: 1433, trustServerCertificate: true, database: 'APPDATA', requestTimeout: 600000, options: { trustedConnection: true, useUTC: true }, pool: { idleTimeoutMillis: 600000, } }
额外排查点
- 确认Electron的Node集成权限:创建BrowserWindow时,确保
nodeIntegration: true;若启用了上下文隔离,需配置预加载脚本保证mssql库正常运行 - 检查防火墙规则:确认Electron.exe被允许出站访问1433端口,部分防火墙会单独拦截程序而非仅限制端口
- 验证SQL Server TCP/IP协议:打开SQL Server配置管理器,找到对应实例的网络配置,确保TCP/IP协议处于启用状态
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

