You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js连接SQL Server超时问题求助(附代码及错误信息)

Node.js连接SQL Server Express超时问题解决步骤

你的Node.js连接代码如下:

const sql = require('mssql')
const sqlConfig = {
  user: 'sa',
  password: '12345678',
  database: 'mementoDB',
  server: 'LAPTOPSZKOLA\\SQLEXPRESS',
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000
  },
  options: {
    encrypt: false,
    trustServerCertificate: true
  }
}

const func = async () => {
 try {
  await sql.connect(sqlConfig);
  const result = await sql.query(`select * from People`);
  console.dir(result);
 } catch (err) {
  console.log(err);
 }
}
func();

运行时出现的超时错误:

ConnectionError: Failed to connect to LAPTOPSZKOLA\SQLEXPRESS in 15000ms
at C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\mssql\lib\tedious\connection-pool.js:85:17
at Connection.onConnect (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:838:9)
at Object.onceWrapper (node:events:629:26)
at Connection.emit (node:events:514:28)
at Connection.emit (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:959:18)
at Connection.connectTimeout (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:1209:10)
at Timeout._onTimeout (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:1154:12)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7) {
code: 'ETIMEOUT',
originalError: ConnectionError: Failed to connect to LAPTOPSZKOLA\SQLEXPRESS in 15000ms
at Connection.connectTimeout (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:1209:26)
at Timeout._onTimeout (C:\Users\creat\OneDrive\Pulpit\jsapps\tut2\node_modules\tedious\lib\connection.js:1154:12)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7) {
code: 'ETIMEOUT'
}
}

针对这个超时问题,按以下步骤排查:

  • 确认SQL Server服务状态:打开services.msc,找到「SQL Server (SQLEXPRESS)」,确保服务处于运行状态,未启动则右键启动。
  • 启用TCP/IP协议:打开SQL Server配置管理器,依次展开「SQL Server网络配置」→「SQLEXPRESS的协议」,右键点击TCP/IP选择启用;双击TCP/IP进入设置,切换到「IP地址」标签拉至底部,在「IPAll」栏确认TCP端口为1433(自定义端口则记好对应值),之后重启SQL Server服务。
  • 修改连接地址:将配置中的server参数替换为localhost\SQLEXPRESS或127.0.0.1\SQLEXPRESS,避免机器名解析异常;如果用了非默认端口,格式改为127.0.0.1,端口号(比如127.0.0.1,1434)。
  • 检查防火墙设置:临时关闭Windows防火墙测试是否能连接,若能则需在防火墙中添加SQL Server端口的入站规则;或者直接放行SQL Server程序。
  • 验证身份验证配置:在SSMS中右键服务器→属性→安全性,确认选择「SQL Server和Windows身份验证模式」;同时检查sa账号未被禁用,密码与代码中一致(可在SSMS中用sa账号登录验证)。
  • 延长连接超时时间:在sqlConfig中添加connectionTimeout: 30000(设置为30秒),避免因初始化慢导致超时:
    const sqlConfig = {
      user: 'sa',
      password: '12345678',
      database: 'mementoDB',
      server: '127.0.0.1\\SQLEXPRESS',
      connectionTimeout: 30000, // 新增超时配置
      pool: {
        max: 10,
        min: 0,
        idleTimeoutMillis: 30000
      },
      options: {
        encrypt: false,
        trustServerCertificate: true
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:38:17