使用 MySQL Workbench 连接到私有 VPC 子网中的数据库实例

使用 MySQL Workbench 连接到私有 VPC 子网中的数据库实例

如何使用 MySQL Workbench 连接到 VPC 中私有子网中的 AWS(或其他)实例?

我的安排是典型的 aws场景 2

我可以:
- 通过 SSH 进入位于我的 VPC 公共子网中的 NAT 实例
- 通过 SSH 从我的 NAT 实例进入我的 VPC 私有子网中的数据库实例
-root一旦连接到我的私有数据库实例,即可以用户身份连接到 MySQL

设置系统通过 MySQL 工作台进行远程连接的正确步骤是什么?

答案1

使用 MySQL Workbench 通过 NAT 连接到私有子网实例中的数据库


创建可以远程连接的mysql用户:

  • 默认情况下root用户无法远程连接
  • 创建一个允许从你的 IP 地址连接的用户(或使用 % ,这意味着任何地址)
    -- 通过 SSH 连接到私有子网中的数据库实例
    -- 以 root 身份登录 mysql 并在出现提示时输入密码:
    mysql -h localhost -u root -p
    -- 运行以下查询来创建用户
    CREATE USER 'username'@'XX.XX.XX.XX' IDENTIFIED BY 'mypassword';
    -- 确保您添加的用户具有所需的所有权限:
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'IP' IDENTIFIED BY 'password';

  • 确保您添加的用户的用户名和密码都不重复
    ——使用以下 mysql 查询在终端中查看用户表:
    select * from mysql.user\G;
    ——出于安全性和潜在用户冲突的原因,删除匿名用户是个好主意: https://stackoverflow.com/questions/10299148

  • 当完成运行查询时:FLUSH PRIVILEGES;


设置安全组以允许通过 NAT 实例进行远程 MySQL 连接:

  • 使用 WorkBench,您可以通过 SSH 隧道连接到 NAT,然后通过端口 3306 连接到数据库实例

  • 确保你连接的 IP 被允许连接到 AWS 安全组中的 3306 端口
    ——NAT 实例应该具有 SSH(22)入站从你的IP地址
    --NAT实例应该有MySQL(3306)出站朝向 VPC 地址范围(例如 10.0.0.0/16)——VPC
    私有子网中的数据库实例应允许入站MySQL(3306) 来自 VPC 私有 IP 范围(例如 10.0.0.0/16)


设置 Workbench 以通过 NAT 实例连接到您的数据库实例:

  • 打开工作台
  • 创建一个新连接并为其命名(例如 my_vpc_db1)
    -- 选择“标准 TCP/IP over SSH”作为连接方法
    - SSH 主机是 NAT 实例的公共 IP,例如 XX.XX.XX.XX
    - SSH 用户名 = ec2-user
    - SSH 密码为空(如有必要,请清除)
    -- SSH 密钥文件 = 浏览到 key_pair.pem 文件的位置
    - MySQL 主机名 = VPC 中数据库实例的私有 IP 地址
    - MySQL 服务器端口 = 3306
    - 用户名 = 您刚刚在 CREATE USER 中添加的名称
    - 密码 = 刚刚在 CREATE USER 中添加

相关内容