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

为何触发[sequelizeConnectionError]: connect ETIMEDOUT?换端口仍无效

Sequelize连接MySQL出现connect ETIMEDOUT的解决方案
  • 检查MySQL服务器的网络可达性
    在应用服务器上执行ping your-mysql-ip测试能否连通MySQL服务器,若不通则排查服务器间路由、防火墙规则;也可用telnet your-mysql-ip 3306测试端口是否可访问,端口连不上通常是被拦截。

  • 修正MySQL绑定地址配置
    登录MySQL服务器,打开my.cnf(或my.ini)文件,查看bind-address配置。若为127.0.0.1则仅允许本地访问,需改为0.0.0.0(允许所有IP)或应用服务器的IP,修改后重启MySQL服务。

  • 配置MySQL用户访问权限
    确保连接用的MySQL用户拥有从应用服务器IP访问的权限,执行以下SQL语句:

    GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'your-app-server-ip' IDENTIFIED BY 'your_password';
    FLUSH PRIVILEGES;
    

    非必要情况下避免使用'your_user'@'%'(允许所有IP访问),保障安全性。

  • 排查应用服务器的出站拦截规则
    检查应用服务器的云安全组(如AWS EC2安全组)是否允许出站访问MySQL端口(默认3306);同时检查服务器本地防火墙(如iptables、ufw),确认未拦截出站请求。

  • 验证Sequelize连接配置
    确认Sequelize配置中的host为MySQL服务器的正确公网/内网IP(不要用localhost,除非MySQL与应用在同一服务器),port与MySQL监听端口一致,username和password无误,示例配置:

    const sequelize = new Sequelize('database', 'username', 'password', {
      host: 'your-mysql-ip',
      port: 3306,
      dialect: 'mysql'
    });
    
  • 确认MySQL服务状态
    在MySQL服务器上执行systemctl status mysql(Linux)查看服务是否正常运行;用netstat -tulpn | grep mysql确认服务监听了正确的端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 14:15:57