我是数据库管理新手,尝试通过家庭网络上的 Macbook (10.14.6) 连接到 AWS RDS MariaDB 10.3.20 实例 - 但失败了。根据其他问题和文档,我的理解是我需要将 RDS 实例公开,但我想我已经这样做了。
我已采取的步骤如下:
- 创建了一个 AWS RDS MariaDB 实例。它位于 VPC 中。
- 将其设置为公开访问 -> 是。
- 在默认安全组中添加了一条新的入站规则,以接受来自我的笔记本电脑 IP 地址的端口 3306 上的连接。我认为步骤 #2 没有必要这样做(因为它接受所有端口、所有流量),但我还是这么做了。
- 看起来 VPC 上的所有 3 个子网都连接到 Internet 网关,并且应该可以从 Internet 访问,因为它们
0.0.0.0/0
的路由表中有一个连接到igw-XXXXX
设备的路由。
然而,在我的家庭网络上的笔记本电脑上(我在家工作,没有公司网络),我无法通过命令行连接:
$ mysql -u <adminusername> -P 3306 -h <RDS endpoint> -p
Enter password:
ERROR 2002 (HY000): Can't connect to MySQL server on <RDS endpoint>
输入密码后,连接似乎超时。错误 2002 看起来 MySQL 没有在目标上运行??
我感觉我遗漏了有关 VPC 或安全组或路由的一些关键步骤 - 有人可以指出更具体的文档或提供更多帮助/详细信息吗?这可能与我的家用路由器或有线调制解调器 (Comcast) 有关吗?这个问题很相似但看起来像是企业网络配置修复……家用路由器是否内置了类似的限制?我有一台 TP Link Archer A7,使用原始设置连接到电缆调制解调器。我尝试设置虚拟服务器以将端口转发到端口 3306 上的笔记本电脑,但这并没有改善任何事情。
答案1
因此,我通过创建一个具有两个子网、一些新安全组和一个新的互联网网关的全新 VPC 解决了这个问题。我配置了一个安全组,该安全组具有3306
对我的本地 IP 的入站端口访问,在子网中设置了到互联网网关的默认路由,并创建了一个新的可公开访问的 RDS MariaDB 实例。瞧,一切都成功了!
经过一番调查,我怀疑自己在乱搞的过程中搞乱了我的默认 VPC。似乎不知何故,两个 IPv4 CIDR 范围被分配给了我的默认 VPC——一个在私有范围(172.31....
),另一个是我的家庭 IP 范围。这两个范围肯定混淆了 VPC,使其处于奇怪的状态。从 CIDR 块列表中删除我的家庭 IP 范围并保留私有 IP 范围,就可以让它正常工作,就像我的新 VPC 一样!
答案2
我也遇到了同样的问题,花了好几个小时才解决。漂亮的确保以下是为我做的 -
当按照建议创建一个新的数据库并将其设置为新的 VPC 以防旧数据库超出我的技术水平时,我注意到默认选择了 IPV4 选项,并且它显示“只有 IPV4 可以连接”。
我再次检查了我的入站规则,这些规则是我经过一番摸索得到的,我注意到在组合中我没有来自 IPV4 的所有流量。设置后一切正常。