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

WorkBench通过SSH隧道连接私有子网EC2的MySQL报错解决

私有子网MySQL通过SSH隧道连接WorkBench失败排查

首先你遇到的报错翻译如下:

无法通过ec2-user@<跳板VM公网IP>的SSH隧道,使用root用户连接到<MySQL所在EC2私有IP>地址的MySQL服务

按以下顺序逐点排查,绝大多数场景都能解决问题:

  • 第一优先级查SSH密钥格式问题:MySQL WorkBench原生不支持.ppk格式(这是Putty专用的密钥格式),你需要把.ppk转换成OpenSSH标准的.pem格式密钥,或者直接使用创建EC2时下载的原始.pem私钥文件配置到SSH Key File项。
  • 先验证跳板机本身的连通性:本地打开终端/命令行,执行ssh -i 你的私钥文件路径 ec2-user@跳板VM公网IP,先确认这步能正常登录跳板机。如果这步失败:
    • 检查跳板机安全组是否放开22端口对你本地公网IP的访问权限
    • 确认跳板机的SSH用户名是否正确:如果跳板机是Ubuntu系统,默认SSH用户是ubuntu不是ec2-user,Amazon Linux系列才默认用ec2-user
    • 检查私钥文件权限是否正确,Linux/macOS下需要执行chmod 400 你的私钥文件给私钥加只读权限
  • 跳板机能正常登录后,验证跳板机到MySQL实例的连通性:登录跳板机后执行mysql -h MySQL实例私有IP -P 3306 -u root -p,输入root密码看能不能正常连上。如果这步失败:
    • 检查MySQL实例的安全组规则,确认3306端口对跳板机的私有IP放行(你配置的0.0.0.0/0放行规则如果存在优先级更高的拒绝规则也会连不上)
    • 检查MySQL服务的监听配置:登录MySQL所在的Ubuntu虚拟机,编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,把bind-address项的值从默认的127.0.0.1改成0.0.0.0,保存后执行systemctl restart mysql重启服务生效
    • 检查root用户的访问权限:MySQL默认root账号仅允许本地localhost登录,需要在MySQL实例本地登录MySQL后执行以下SQL授权:
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的root账号密码' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
      
  • 以上都验证通了之后再回WorkBench重连,注意检查配置项不要打错字符、多打空格,如果之前连接过跳板机出现过指纹变更,删除本地~/.ssh/known_hosts文件中对应跳板机公网IP的记录后再重试。

内容的提问来源于stack exchange,提问作者Container-Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:39:18