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

Serverless Node.js部署后出现MySQL Handshake inactivity timeout错误求助

解决Serverless Node.js应用连接AWS RDS时的Handshake inactivity timeout错误

以下是针对该问题的常见排查方向和解决方法:

1. 安全组网络访问限制

虽然RDS是公网实例且本地能正常连接,但Serverless(Lambda)函数的执行环境IP是动态分配的AWS公网IP,默认RDS安全组可能只开放了你的本地IP。

  • 若函数部署在VPC外:不建议直接开放0.0.0.0/0(安全风险),更稳妥的方式是将Lambda函数配置到RDS所在的VPC中,使用RDS的内网端点连接(内网地址可在RDS控制台的「连接与安全性」中获取),同时确保VPC的安全组允许Lambda所在子网与RDS实例的3306端口通信。
  • 若必须用公网连接:在RDS安全组的入站规则中,添加Lambda函数所在区域的AWS公网IP段。

2. 数据库连接参数优化

本地连接正常但部署后超时,可能是连接超时参数设置过短,或是SSL配置缺失:

  • 调整连接超时参数,延长握手等待时间:
    const mysql = require('mysql2');
    const conn = mysql.createConnection({
      host: 'your-rds-internal-endpoint',
      user: 'db-user',
      password: 'db-pass',
      database: 'db-name',
      connectTimeout: 15000, // 15秒超时
      acquireTimeout: 15000
    });
    
  • 若RDS开启了强制SSL连接,需在配置中添加SSL参数:
    ssl: {
      rejectUnauthorized: false // 或指定AWS提供的SSL证书路径
    }
    

3. Lambda连接复用与冷启动优化

Lambda冷启动时建立新连接的耗时可能超过默认超时,改用连接池复用连接能有效缓解:

  • 使用mysql2/promise的连接池,避免每次请求都新建连接:
    const mysql = require('mysql2/promise');
    // 全局初始化连接池,避免每次冷启动重建
    const pool = mysql.createPool({
      host: 'your-rds-endpoint',
      user: 'db-user',
      password: 'db-pass',
      database: 'db-name',
      connectionLimit: 5,
      connectTimeout: 15000,
      waitForConnections: true
    });
    
    exports.handler = async (event) => {
      let connection;
      try {
        connection = await pool.getConnection();
        // 执行CRUD操作
        const [rows] = await connection.query('SELECT * FROM your_table');
        return { statusCode: 200, body: JSON.stringify(rows) };
      } catch (err) {
        return { statusCode: 500, body: err.message };
      } finally {
        if (connection) connection.release(); // 释放回连接池,而非关闭
      }
    };
    

4. RDS实例负载排查

若RDS实例CPU、内存使用率过高,会导致无法及时响应连接请求:

  • 登录AWS RDS控制台,查看实例的监控指标(CPUUtilization、FreeableMemory、Connections),若负载超出实例承载能力,考虑升级实例规格或优化数据库查询语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:10