我试图在我的项目中使用适用于MySQL的AWS Aurora Serverless,但我无法连接到它,尽管我有终端节点,用户名和密码。
我做了什么:
结果:
您的连接尝试失败,用户“ admin”从主机到 位于xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com的服务器:3306: 无法连接到MySQL服务器 'xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com'(60)
我是否采取了任何错误的措施?请给我建议。
****编辑****
我试图创建另一个容量类型为:已配置的Aurora数据库。我可以通过MySql工作台使用用户名和密码无缝连接到端点。这意味着为工作台打开了端口3306。
答案 0 :(得分:6)
连接到Aurora无服务器数据库集群的一种方法是使用Amazon EC2实例。你不能 在预览中创建可公开访问的Aurora Serverless数据库集群。该任务将引导您完成 在您的VPC中创建可公开访问的Amazon EC2实例。您可以使用此Amazon EC2实例来 连接到Aurora无服务器数据库集群。
这直接来自预览注册时提供的文档。请尝试在您的MYSQL Workbench或SQL UI中创建EC2实例并使用SSH隧道方法。在预览期间,不允许将Aurora Serverless设置为公开访问。
答案 1 :(得分:5)
来自https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/aurora-serverless.html:
- 您不能为Aurora无服务器数据库群集提供公共IP地址。
- 您只能从以下位置访问Aurora无服务器数据库集群: 基于Amazon VPC服务的虚拟私有云(VPC)。
- 您无法通过以下方式访问Aurora无服务器数据库集群的终结点: AWS VPN连接或区域间VPC对等连接。那里 通过以下方式访问集群端点的限制 区域内VPC对等连接;有关更多信息,请参见 Amazon VPC用户中的接口VPC终端节点(AWS PrivateLink) 指南。但是,您可以访问Aurora无服务器群集的 通过AWS Direct Connect连接的终端节点。
因此,除了通过EC2实例通过SSH进行操作外,您还可以使用带有AWS Direct Connect的mySQL Workbench访问无服务器集群。
答案 2 :(得分:2)
我们无法直接从 MySQL Workbench 连接 Aurora Serverless,因为只有分配给 Aurora Serverless 的私有 IP,而不是公共 IP。
我们可以从 EC2 连接 Aurora Serverless,但无法通过 Mysql Workbench SSH 隧道连接 Aurora Serverless。
我们无法通过 ALB 连接 Aurora Serverless,因为 ALB 仅允许 HTTP 和 HTTPS 流量。 您可以从本地 telnet ALB-RDS-DNS 但无法连接到 MySQL Workbench
那么这里有什么解决办法;
步骤 1:创建 NLB 并添加侦听器负载均衡器协议:TCP 和负载均衡器端口 :3306
第 2 步:选择 VPC(应该是 Aurora Serverless Cluster 的同一个 VPC),并添加子网(公共)
第 3 步:导航到配置路由,选择目标类型:IP,和协议:TCP,端口:3306
第 4 步:使用 DNS Checker 获取 Aurora Serverless Cluster 的私有 IP,并将这些 IP 添加到端口 3306
步骤 5:创建 NLB
现在修改 Aurora Serverless Cluster 的安全组,允许来自 0.0.0.0(不推荐)或 VPC CIDR 的流量
现在,转到 Mysql Workbench 并使用 NLB DNS 名称,并尝试使用 Aurora Serverless Cluster 的正确用户名和密码进行连接。
答案 3 :(得分:1)
最初,我陷入了同样的情况 连接AWS RDS Aurora时要注意的点
不能连接Public,您需要一个具有与创建Aurora相同区域的EC2实例。
Aurora Public access应该被选中否(对我有用)。
您需要创建安全组,并在其中添加入站和出站规则(EC2实例的IpAddress)。
Ex:类型= MYSQL / AURORA,协议= TCP,PortRange = 3306,源=自定义和您的IP地址范围,
将实例和安全组修改为实例,并立即应用更改。
在创建Aurora时,您将创建MasterName,Pwd和默认架构以进行连接。
创建后,转到群集并使用群集端点,并使用EC2实例和MySQL Workbench登录,使用主机名作为群集端点,并在创建aurora数据库时输入用户名和密码。
答案 4 :(得分:1)
用于连接到Aurora Serverless的数据API和查询编辑器现在在更多区域中可用。
答案 5 :(得分:1)
您应该使用可以访问您的数据库实例的EC2实例。
此EC2实例应为ssh打开端口22。
现在使用从本地到EC2到数据库实例的端口转发。
现在,在工作台中输入主机名127.0.0.1和端口<forwarded port>
。
答案 6 :(得分:1)
Aurora无服务器没有公共端点可以从任何想法(如MYSQL工作台,Sequel pro等)进行连接。但是,我们可以通过在Aurora无服务器所在的同一vpc中启动一个实例来通过cli连接。
此外,您还可以检出cloud9和AWS Cloud IDE。反过来,这仅是ec2,但还将具有UI,并且可以与团队和许多其他功能共享。
答案 7 :(得分:1)
要连接到 Aurora serverless 或私有子网中的任何数据库,您需要一个“跳转主机”,它可以是公共子网中的任何 EC2 实例。
类型:MYSQL/Aurora,协议:TCP,端口范围:3306,
来源:securitygroupofEC2(您可以通过输入所有安全组
'sg-')
类型:SSH,协议:TCP,端口范围:22,来源:我的 IP
- 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>
点击“测试连接”,大功告成!!
答案 8 :(得分:0)
客户用于连接到仅VPC服务(例如Aurora Serverless,Amazon Neptune,Amazon DocDB等)的常见模式是具有中间层(EC2实例或ALB等),并使中间层可从外部访问VPC。如果您的用例只是尝试一些查询或连接工作台,那么最简单的操作是:
完成所有这些操作后,您将获得一个新的DNS-指向您的ALB。确保通过以下方式正确设置ALB:
telnet alb-endpoint alb-port
。如果成功,则您将具有完整的端到端连接(不是直接连接到ALB,而是一直连接到该连接)。 完成此操作后,在工作台中使用ALB端点,您就可以进行了。
仅对于非生产系统建议使用此模式。有关步骤是将DNS解析为IP的步骤-该IP是临时的,当在后台进行规模计算或故障转移时,它可以更改。
希望这会有所帮助,如果您需要任何详细信息,请告诉我。这是海王星的一个相关答案:
答案 9 :(得分:0)
这可以通过使用haproxy来实现
在Centos上安装Haproxy-> yum install haproxy
删除此文件/etc/haproxy/haproxy.cfg中的现有配置,并添加以下几行(确保在以下配置中替换RDS端点url)
全局 用户代理 组haproxy
默认 重试2 超时连接3000 超时服务器5000 超时客户端5000
收听mysql-cluster 绑定0.0.0.0:3307 模式tcp 服务器mysql-1 test.cluster-crkxsds.us-west-2.rds.amazonaws.com:3306
修改文件后,启动haproxy->服务haproxy start
您可以使用端口号为3307的公共IP在MYSQL Workbench中连接Aurora RDS
答案 10 :(得分:-4)
我的猜测是您的安全组未正确设置访问权限。您需要明确允许在该端口上对该实例的远程访问。
摘自官方文档:
与新数据库实例的连接失败的两个常见原因是:
该数据库实例是使用安全组创建的,该安全组未授权来自设备或Amazon EC2实例的连接, MySQL应用程序或实用程序正在运行。如果数据库实例是 在VPC中创建的,它必须具有授权的VPC安全组 连接。如果数据库实例是在VPC外部创建的,则它将 必须具有授权连接的数据库安全组。
该数据库实例是使用默认端口3306创建的,并且您的公司具有防火墙规则,阻止从该端口到该端口的连接。 公司网络中的设备。要解决此故障,请重新创建 具有不同端口的实例。
有关更多信息,请参见此处:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html