如果您无法从本地访问AWS RDS数据库,即使安全组允许您的IP或所有IP进行入站访问,可能是由于以下几个原因:
本地网络问题:首先,请确保您的本地网络没有任何限制或防火墙阻止对AWS RDS的访问。您可以尝试从其他网络或设备上访问AWS RDS来确认问题是否出在本地网络上。
RDS实例的子网和安全组配置:确保您的RDS实例和您本地访问的网络位于相同的VPC中,并且RDS实例的子网和安全组配置允许来自您的IP或所有IP的入站连接。以下是一个AWS CLI示例,用于添加允许所有IP访问的入站规则:
aws rds authorize-db-security-group-ingress --db-security-group-name YourSecurityGroupName --cidrip 0.0.0.0/0 --port YourPortNumber
您需要替换YourSecurityGroupName为您的安全组名称,YourPortNumber为数据库的端口号。
import pymysql
host = "your-rds-endpoint"
port = 3306
user = "your-username"
password = "your-password"
database = "your-database-name"
try:
conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
print("Connected successfully!")
# 执行其他操作...
except Exception as e:
print("Connection failed:", e)
您需要将your-rds-endpoint替换为您的RDS实例的端点,your-username和your-password替换为正确的凭证,your-database-name替换为您的数据库名称。
如果您仍然无法从本地访问AWS RDS,请检查AWS RDS实例的日志和事件,以获取更多信息和错误消息。此外,确保您具有正确的AWS IAM权限来访问RDS资源。