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

如何通过SSH安全连接MySQL Workbench到AWS EC2上的Django项目

通过SSH连接EC2实例上MySQL数据库的故障排查与解决方法

一、修复SSH密钥文件权限问题

Ubuntu系统对SSH密钥文件权限要求严格,权限过宽会直接拒绝连接:

  • Linux/macOS本地终端执行:
    chmod 600 /path/to/your-key-file.pem
    
  • Windows用户:右键密钥文件→属性→安全→高级,删除所有非当前用户的权限条目,仅保留自身的完全控制权限。

二、确认MySQL用户的本地访问权限

SSH连接时,客户端相当于通过EC2本地的127.0.0.1访问数据库,必须确保你的MySQL用户拥有本地访问权限:

  1. 登录EC2实例的MySQL:
    mysql -u root -p
    
  2. 查看现有用户的访问范围:
    SELECT user, host FROM mysql.user;
    
  3. 若没有username@localhost或username@127.0.0.1的条目,执行以下命令添加权限:
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'your-password';
    GRANT ALL PRIVILEGES ON db_schema_name.* TO 'username'@'localhost';
    FLUSH PRIVILEGES;
    

三、修正MySQL Workbench的SSH连接配置

确保以下配置项完全正确:

  • SSH主机名:EC2实例的公网IPv4地址(如13.234.56.78)
  • SSH用户名:Ubuntu官方镜像默认是ubuntu,自定义镜像填对应用户名
  • SSH密钥文件:选择本地的.pem文件,确认路径无错误
  • MySQL主机名:必须填127.0.0.1(SSH隧道会转发到EC2本地的MySQL服务)
  • MySQL端口:3306
  • MySQL用户名:你创建的数据库用户username
  • MySQL密码:对应用户的密码

四、检查EC2安全组的SSH入站规则

确保安全组允许你的本地IP访问22端口:

  1. 进入AWS控制台→EC2→实例→选中目标实例→安全组
  2. 编辑入站规则,添加一条:
    • 类型:SSH
    • 协议:TCP
    • 端口范围:22
    • 源:你的本地IP(格式如192.168.1.1/32),测试阶段可临时用0.0.0.0/0,测试完成后务必改回本地IP

五、恢复MySQL的安全绑定设置(可选但推荐)

使用SSH隧道后,无需让MySQL监听公网,改回本地绑定更安全:

  1. 编辑MySQL配置文件:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 修改以下两项:
    bind-address = 127.0.0.1
    mysqlx-bind-address = 127.0.0.1
    
  3. 重启MySQL服务:
    sudo systemctl restart mysql
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:31:22