无法从 SQL 客户端连接 Amazon Aurora Serverless
Not able connect Amazon Aurora Serverless from SQL client
今天我在 us-west-2 为 PostGreSql 创建了 Amazon Aurora Serverless 集群,确保了 VPC 和安全组在
这样一来,它应该可以公开访问。但是我无法使用 Navicat/PgAdmin4 桌面客户端的 aurora 端点连接该集群。然后我尝试从与 Aurora Serverless 具有相同安全性 group/vpc 的 EC2 实例进行尝试,然后它起作用了。
来自 AWS 论坛,
You can't give an Aurora Serverless
DB cluster a public IP address.
You can access an Aurora Serverless
DB cluster only
from within a
virtual private cloud (VPC) based on the Amazon VPC service.
来源: https://forums.aws.amazon.com/thread.jspa?messageID=862860&tstart=0
它似乎使用了内部 AWS 网络设置,目前仅支持来自 VPC 内部的连接,并且它必须是部署无服务器集群的同一 VPC。
所以现在基本上我的问题是,
是否有任何解决方法可以将 Aurora Serverless 与任何客户端(如 Navicat 或 PgAdmin4)连接起来?
这个问题在多个 AWS 服务中反复出现(大多数新服务默认仅是 VPC)。简短的回答是——你可以破解一些东西并在 VPC 之外公开数据库,但不建议将其用于生产设置。假设这是针对开发设置的,一定要尝试 [1] 中的建议。它适用于海王星,但您也可以对极光执行完全相同的操作。
[1]
我发现了一个很酷的黑客,它通过一些调整非常适合我的 开发 目的,我知道我的 生产 [=] 不需要这个40=]环境。
据我们所知,Aurora Serverless 仅在 VPC 内部运行。因此,请确保您尝试连接到 VPC 内的 Aurora,并且分配给 Aurora 集群的安全组具有允许访问的适当规则。正如我之前提到的,我已经拥有一个 EC2 实例、Aurora Serverless 和一个围绕两者的 VPC。所以我可以从我的 EC2 访问它,但不能从我的本地 pc/本地 sql 客户端访问它。为了解决这个问题,我做了以下两个步骤。
1.要从任何客户端访问(在我的例子中是 Navicat),
一个。首先需要添加 GENERAL 数据库配置,如 aurora 端点主机、用户名、密码等。
b.然后,需要添加 SSH 配置,如 EC2 机器用户名、hostip 和 .pem 文件路径
2。要从项目访问,
首先我从我的终端创建一个 ssh 隧道,
ssh ubuntu@my_ec2_ip_goes_here -i rnd-vrs.pem -L 5555:database-1.my_aurora_cluster_url_goes_here.us-west-2.rds.amazonaws.com:5432
然后运行我的数据库配置项目是这样的test.php,
$conn = pg_connect("host=127.0.0.1 port=5555 dbname=postgres user=postgres password=password_goes_here");
// other code goes here to get data from your database
if (!$conn) {
echo "An error occurred.\n";
exit;
}
$result = pg_query($conn, "SELECT * FROM brands");
if (!$result) {
echo "An error occurred.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Brand Id: $row[0] Brand Name: $row[1]";
echo "<br />\n";
}
今天我在 us-west-2 为 PostGreSql 创建了 Amazon Aurora Serverless 集群,确保了 VPC 和安全组在 这样一来,它应该可以公开访问。但是我无法使用 Navicat/PgAdmin4 桌面客户端的 aurora 端点连接该集群。然后我尝试从与 Aurora Serverless 具有相同安全性 group/vpc 的 EC2 实例进行尝试,然后它起作用了。
来自 AWS 论坛,
You can't give an Aurora
Serverless
DB cluster a public IP address. You can access an AuroraServerless
DB clusteronly
from within a virtual private cloud (VPC) based on the Amazon VPC service.
来源: https://forums.aws.amazon.com/thread.jspa?messageID=862860&tstart=0
它似乎使用了内部 AWS 网络设置,目前仅支持来自 VPC 内部的连接,并且它必须是部署无服务器集群的同一 VPC。
所以现在基本上我的问题是,
是否有任何解决方法可以将 Aurora Serverless 与任何客户端(如 Navicat 或 PgAdmin4)连接起来?
这个问题在多个 AWS 服务中反复出现(大多数新服务默认仅是 VPC)。简短的回答是——你可以破解一些东西并在 VPC 之外公开数据库,但不建议将其用于生产设置。假设这是针对开发设置的,一定要尝试 [1] 中的建议。它适用于海王星,但您也可以对极光执行完全相同的操作。
[1]
我发现了一个很酷的黑客,它通过一些调整非常适合我的 开发 目的,我知道我的 生产 [=] 不需要这个40=]环境。
据我们所知,Aurora Serverless 仅在 VPC 内部运行。因此,请确保您尝试连接到 VPC 内的 Aurora,并且分配给 Aurora 集群的安全组具有允许访问的适当规则。正如我之前提到的,我已经拥有一个 EC2 实例、Aurora Serverless 和一个围绕两者的 VPC。所以我可以从我的 EC2 访问它,但不能从我的本地 pc/本地 sql 客户端访问它。为了解决这个问题,我做了以下两个步骤。
1.要从任何客户端访问(在我的例子中是 Navicat),
一个。首先需要添加 GENERAL 数据库配置,如 aurora 端点主机、用户名、密码等。 b.然后,需要添加 SSH 配置,如 EC2 机器用户名、hostip 和 .pem 文件路径
2。要从项目访问,
首先我从我的终端创建一个 ssh 隧道,
ssh ubuntu@my_ec2_ip_goes_here -i rnd-vrs.pem -L 5555:database-1.my_aurora_cluster_url_goes_here.us-west-2.rds.amazonaws.com:5432
然后运行我的数据库配置项目是这样的test.php,
$conn = pg_connect("host=127.0.0.1 port=5555 dbname=postgres user=postgres password=password_goes_here");
// other code goes here to get data from your database
if (!$conn) {
echo "An error occurred.\n";
exit;
}
$result = pg_query($conn, "SELECT * FROM brands");
if (!$result) {
echo "An error occurred.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Brand Id: $row[0] Brand Name: $row[1]";
echo "<br />\n";
}