无法使用 PgAdmin 连接到 Amazon Aurora
Unable to connect to Amazon Aurora with PgAdmin
我在我的 AWS 账户上创建了一个 Amazon Aurora Postgres 数据库,现在正尝试使用 PgAdmin 连接到它。我输入数据库名称、用户名、密码、主机和端口。当我尝试连接时遇到这个问题。
Unable to connect to server:
could not connect to server: Operation timed out
Is the server running on host "host_name.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
我是 Amazon Aurora 的新手,不确定我下一步必须做什么才能连接。我阅读了文档,但找不到我要找的东西。当我尝试使用包含我的 Django 应用程序的生产服务器连接到它时,我也遇到了同样的错误。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'hostname.us-east-2.rds.amazonaws.com',
'PORT': '5432'
}
}
我遇到了类似的问题
django.db.utils.OperationalError: could not connect to server: Connection timed out
Is the server running on host "hostname.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
您应该将尝试连接的 IP 从 EC2 中的安全组添加到 RDS 的安全组作为传入 mysql 连接
我在这里发布了一个关于 PostgreSQL 的类似问题的答案,我认为这可能对 Aurora 也有帮助:
当您尝试在 EC2 或 EB 上将现有 RDS 数据库与 Django 一起使用时,您必须调整安全组,然后获取适当的参数并将它们设置为环境变量 (RDS_*)
1) 创建 RDS,并匹配这些:
Environment variables - RDS console label
RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME – DB Name
RDS_USERNAME – Username
RDS_PASSWORD – Password you set for your DB
2) 设置那些使用,例如,eb setenv
3) 转到您的 EC2/EB 实例并获取该实例的安全组,例如awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf
对于负载均衡器:awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf
4) 转到您的 RDS 实例的面板,向下滚动到安全组并记下它拥有的安全组。例如rds-launch-wizard-1 (ab-sdjfalkajsdf39)
5) 点击RDS实例的modify,在中间的Security Groups设置中,添加上面找到的load balancer安全组。它应该有建议。
6) 转到 EC2 仪表板并从左侧菜单中选择安全组。
7) Select 负载均衡器安全组,并添加出站规则。类型应该是您的 RDS 类型 (PostgreSQL),目标应该是自定义和 RDS 实例的安全组。保存。
8) 对入站执行相同操作,使用相同的 RDS 类型和目的地
9) Select RDS 安全组,并添加一个入站规则,类似于 8,但使用您在步骤 2 中获得的 EC2 或 EB 实例。
10) 保存,大功告成。他们现在应该可以一起工作了。
我不是 100% 确定所有这些步骤都是必要的,一两个步骤可能不是必需的,但这帮我完成了工作。
对于 aws RDS 要记住的一件事是,如果您使用容量类型(平均角色)作为无服务器类型,这意味着 AWS RDS 将设法计算数据库实例的容量以匹配您的应用程序的使用。无服务器中还会有其他东西。
这使您的服务器无法 public 访问(与 ElasticCache 相同),但可以使用数据 API 进行连接或将您的 EC2 instance/lambda 函数放在该数据库所在的同一 VPC 中。
我在我的 AWS 账户上创建了一个 Amazon Aurora Postgres 数据库,现在正尝试使用 PgAdmin 连接到它。我输入数据库名称、用户名、密码、主机和端口。当我尝试连接时遇到这个问题。
Unable to connect to server:
could not connect to server: Operation timed out
Is the server running on host "host_name.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
我是 Amazon Aurora 的新手,不确定我下一步必须做什么才能连接。我阅读了文档,但找不到我要找的东西。当我尝试使用包含我的 Django 应用程序的生产服务器连接到它时,我也遇到了同样的错误。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'hostname.us-east-2.rds.amazonaws.com',
'PORT': '5432'
}
}
我遇到了类似的问题
django.db.utils.OperationalError: could not connect to server: Connection timed out
Is the server running on host "hostname.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
您应该将尝试连接的 IP 从 EC2 中的安全组添加到 RDS 的安全组作为传入 mysql 连接
我在这里发布了一个关于 PostgreSQL 的类似问题的答案,我认为这可能对 Aurora 也有帮助:
当您尝试在 EC2 或 EB 上将现有 RDS 数据库与 Django 一起使用时,您必须调整安全组,然后获取适当的参数并将它们设置为环境变量 (RDS_*)
1) 创建 RDS,并匹配这些:
Environment variables - RDS console label
RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME – DB Name
RDS_USERNAME – Username
RDS_PASSWORD – Password you set for your DB
2) 设置那些使用,例如,eb setenv
3) 转到您的 EC2/EB 实例并获取该实例的安全组,例如awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf
对于负载均衡器:awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf
4) 转到您的 RDS 实例的面板,向下滚动到安全组并记下它拥有的安全组。例如rds-launch-wizard-1 (ab-sdjfalkajsdf39)
5) 点击RDS实例的modify,在中间的Security Groups设置中,添加上面找到的load balancer安全组。它应该有建议。
6) 转到 EC2 仪表板并从左侧菜单中选择安全组。
7) Select 负载均衡器安全组,并添加出站规则。类型应该是您的 RDS 类型 (PostgreSQL),目标应该是自定义和 RDS 实例的安全组。保存。
8) 对入站执行相同操作,使用相同的 RDS 类型和目的地
9) Select RDS 安全组,并添加一个入站规则,类似于 8,但使用您在步骤 2 中获得的 EC2 或 EB 实例。
10) 保存,大功告成。他们现在应该可以一起工作了。
我不是 100% 确定所有这些步骤都是必要的,一两个步骤可能不是必需的,但这帮我完成了工作。
对于 aws RDS 要记住的一件事是,如果您使用容量类型(平均角色)作为无服务器类型,这意味着 AWS RDS 将设法计算数据库实例的容量以匹配您的应用程序的使用。无服务器中还会有其他东西。 这使您的服务器无法 public 访问(与 ElasticCache 相同),但可以使用数据 API 进行连接或将您的 EC2 instance/lambda 函数放在该数据库所在的同一 VPC 中。