AWS Aurora MySQL无服务器:如何从MySQL Workbench连接

Pho*_* Vu 20 mysql amazon-web-services amazon-aurora serverless

我试图在我的项目中使用AWS Aurora Serverless for MySQL,但我无法连接到它,尽管我有端点,用户名和密码.

我做了什么:

  1. 从AWS控制台管理,我选择RDS> Instances> Aurora> Serverless
  2. 保留默认设置
  3. 创建数据库
  4. AWS将仅创建AWS群集 在此输入图像描述
  5. 我打开MySQL Workbench,并使用端点,用户名,密码来连接数据库

Ressult:

用户'admin'从主机到服务器的连接尝试失败xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com:3306:无法连接到'xxxxx.cluster-abcdefg1234上的MySQL服务器. eu-west-1.rds.amazonaws.com'(60)

我做错了吗?请指教.

****编辑****

我尝试使用容量类型创建另一个Aurora数据库:Provisioned.我可以使用MySql workbench的用户名和密码无缝连接到端点.这意味着端口3306为工作台打开.

关于安全组: 在此输入图像描述

Yog*_*oga 15

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/aurora-serverless.html

  • 您不能为Aurora无服务器数据库群集提供公共IP地址。
  • 您只能从基于Amazon VPC服务的虚拟私有云(VPC)中访问Aurora无服务器数据库集群。
  • 您无法通过AWS VPN连接或区域间VPC对等连接访问Aurora无服务器数据库集群的终端节点。通过区域内VPC对等连接访问群集的终结点存在局限性;有关更多信息,请参阅Amazon VPC用户指南中的接口VPC终端节点(AWS PrivateLink)。但是,您可以通过AWS Direct Connect连接访问Aurora无服务器群集的终端节点。

因此,除了通过EC2实例通过SSH进行访问外,您还可以使用带有AWS Direct Connect的mySQL Workbench访问无服务器集群。

  • 目前看来,无服务器数据库也可以通过AWS客户端VPN访问https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/how-it-works.html (3认同)

小智 11

要连接到 Aurora 无服务器或私有子网中的任何数据库,您将需要一个“跳转主机”,它可以是公共子网中的任何 EC2 实例。

请按照以下步骤操作:

  1. 打开附加到数据库的安全组,然后添加新规则,如下所示:-

类型:MYSQL/Aurora,协议:TCP,端口范围:3306,
来源:securitygroupofEC2(您可以通过输入“sg-”来选择所有安全组)

  1. 打开EC2附加的安全组,并开放22端口。如果没有,请添加如下新规则:-

类型:SSH,协议:TCP,端口范围:22,来源:我的 IP

  1. 打开工作台,单击新建连接
- Standard TCP/IP over SSH
 - SSH Hostname : < your EC2 Public IP >  #34.3.3.1
 - SSH Username : < your username > #common ones are : ubuntu, ec2-user, admin
 - SSH KeyFile: < attach your EC2 .pem file>

 - MYSQL Hostname: <database endpoint name> #mydb.tbgvsblc6.eu-west-1.rds.amazonaws.com

 - MYSQL Port: 3306
 - Username : <database username>
 - Password: <database password>
Run Code Online (Sandbox Code Playgroud)

单击“测试连接”即可完成!

  • 这应该是公认的答案,可能还有 AWS 文档的链接,正如上面 Yoga 指出的那样。这样做可以让您快速启动并运行,特别是如果您的最终目标是开发项目。花更多时间编码,将管理留给管理员......;) (3认同)

big*_*g-K 8

客户用于连接到仅 VPC 服务(如 Aurora Serverless、Amazon Neptune、Amazon DocDB 等)的常见模式是拥有一个中间层(EC2 实例或 ALB 等)并使中间层可从 VPC 外部访问。如果您的用例只是尝试一些查询或连接工作台,那么最简单的方法是:

  1. 解析无服务器数据库的DNS并获取其IP
  2. 在您的 VPC 中创建一个 ALB,目标组指向您在 #1 中找到的 IP
  3. 创建一个新的安全组并将其附加到您的 ALB
  4. 更新 SG 以允许从您想要的任何地方入站。如果您想要公共互联网访问,则允许来自所有 IP 的入站,在您的 VPC 中启用互联网网关,并为您的 ALB 使用公共子网。

完成所有这些后,您将获得一个新的 DNS - 指向您的 ALB。通过以下方式确保您的 ALB 设置正确:

  1. 使用 telnet 连接到您的 ALB 端点。telnet alb-endpoint alb-port. 如果成功,那么您就有了完整的端到端连接(不只是连接到您的 ALB,而是一直连接)。
  2. 验证 ALB 指标以确保所有运行状况检查均通过。

完成此操作后,在工作台中使用 ALB 端点,您就可以开始了。

此模式仅推荐用于非生产系统。相关步骤是将 DNS 解析为 IP 的步骤 - 该 IP 是短暂的,当在后台发生规模计算或故障转移时,它可能会发生变化。

希望这会有所帮助,如果您需要有关任何步骤的更多详细信息,请告诉我。这是海王星的相关答案:

从本地机器连接到 AWS 上的 Neptune


小智 8

  • 我们无法直接从 MySQL Workbench 连接 Aurora Serverless,因为仅分配给 Aurora Serverless 的私有 IP,而不是公共 IP。

  • 我们可以从 EC2 连接 Aurora Serverless,但无法通过 Mysql Workbench SSH 隧道连接 Aurora Serverless。

  • 我们无法通过 ALB 连接 Aurora Serverless,因为 ALB 仅允许 HTTP 和 HTTPS 流量。您可以从本地远程登录 ALB-RDS-DNS,但无法连接到 MySQL Workbench

那么这里有什么解决办法吗?

  • 我们可以通过 NLB 连接 Aurora Serverless,因为 NLB 允许通过 TCP 协议进行流量;

步骤 1:创建 NLB 并添加侦听器负载均衡器协议:TCP 和负载均衡器端口:3306

步骤2:选择VPC(应与Aurora Serverless Cluster相同的VPC),并添加子网(公共)

步骤 3:导航到配置路由,选择目标类型:IP,协议:TCP,端口:3306

步骤 4:使用 DNS Checker 获取 Aurora Serverless Cluster 的私有 IP,并添加端口为 3306 的这些 IP

步骤 5:创建 NLB

现在修改 Aurora Serverless Cluster 的安全组,允许来自 0.0.0.0(不推荐)或 VPC CIDR 的流量

现在,转到 Mysql Workbench 并使用 NLB DNS 名称,并尝试使用 Aurora Serverless Cluster 的正确用户名和密码进行连接。

  • 很好用!这样做的一个潜在缺点可能是 NLB 的运行状况检查将阻止 Aurora 实例完全关闭(如果相关的话)。 (2认同)

小智 7

连接到Aurora无服务器数据库群集的一种方法是使用Amazon EC2实例.您无法在预览中创建可公开访问的Aurora无服务器数据库群集.此任务将引导您在VPC中创建可公开访问的Amazon EC2实例.您可以使用此Amazon EC2实例连接到Aurora无服务器数据库群集.

这直接来自预览注册时提供的文档.请尝试在您选择的MYSQL Workbench或SQL UI中创建EC2实例并使用SSH隧道方法.在预览期间,不允许将Aurora无服务器设置为可公开访问.

  • 嗨,cmtzco,如果是这样,那么直到正式发布之前,现在不是时候使用Aurora Serverless DB进行生产了。我对么? (2认同)

小智 5

AWS 新功能:Aurora Serverless v2.0 公共 IP 地址可用

像你们中的许多人一样,我等待并希望这一点已经有一段时间了。

截至 2022 年 4 月 27 日,RDS Aurora MySQL Serverless 现已提供公共选项。您必须为该选项创建单独的安全组并设置入站规则。

复制您的端点、用户和密码,然后就可以开始了。

查看Aurora Serverless v2 和 Aurora Serverless v1 要求的比较

对我来说就像一个魅力。

  • 您好,有什么例子如何使用 cdk 来做到这一点吗?谢谢 (3认同)

mju*_*rez -6

我的猜测是您的安全组未正确设置访问权限。您需要明确允许通过该端口远程访问该实例。

来自官方文档:

新数据库实例连接失败的两个常见原因是:

  • 数据库实例是使用安全组创建的,该安全组不授权来自运行 MySQL 应用程序或实用程序的设备或 Amazon EC2 实例的连接。如果数据库实例是在 VPC 中创建的,则它必须具有授权连接的 VPC 安全组。如果数据库实例是在 VPC 外部创建的,则它必须具有授权连接的数据库安全组。

  • 该数据库实例是使用默认端口 3306 创建的,并且您公司的防火墙规则阻止从公司网络中的设备连接到该端口。要修复此故障,请使用不同的端口重新创建实例。

浏览此处获取更多信息:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html