连接到 AWS RDS mariadb 实例时出错

连接到 AWS RDS mariadb 实例时出错

我刚刚创建了一个 AWS EC2 Ubuntu 实例和一个与之配套的 RDS mariadb 实例。 (我目前正在使用免费套餐)。

我已关闭对 RDS 的公共访问,以便只能在同一 VCS 内访问它。我的 EC2 盒子与 VCS 位于同一位置,我想从那里连接到数据库。

我在我的 Ubuntu 机器上安装了 mariadb-client。我使用 RDS 实例页面中的端点作为 RDS 框并运行命令:

mysql  -P 3306 -u thomas -p -h ******.******.us-east-1.rds.amazonaws.com

ERROR 2005 (HY000): Unknown MySQL server host '******.*****.us-east-1.rds.amazonaws.com' (-2)

主机 *****.******.us-east-1.rds.amazonaws.com 返回未找到。

当我第一次尝试时拼错了服务器名称时,错误后出现了一个 (-3),我认为这很有趣。所以我用谷歌搜索了错误代码并发现了这个:https://dev.mysql.com/doc/refman/5.5/en/error-messages-client.html它告诉我有关错误代码 2005 的信息,但没有告诉我括号中的部分。

该文档引用了一个包含,我查了一下,但没有找到-2。所以:

1)在哪里可以找到有关括号中信息的信息?

2) 为什么我无法访问我的 RDS 实例?

答案1

嗯,正如所料,我是个笨蛋。首先,我没有意识到这一点,但端点由于某种原因发生了变化。我可能更改了一个设置,它在没有我询问的情况下重建了它,并给了它一个新的端点名称。这就是 nslookup 和 host 命令失败的原因。

然后,一旦他们开始工作,我就开始处理我用来连接的脚本,我意识到我在 -h 参数的主机名末尾留下了 :3306 。我删除了这个,一切都开始工作了。

这就是当你对网络开发人员的脑白质切除投“反对”票时会发生的情况。

答案2

我建议尝试使用 RDS 实例的 IP 地址而不是主机名。看看是否可以直接访问端口,无需客户端包即。远程登录主机 3306。

此外,由于它们位于 VPC 中,因此请确保子网匹配。这让我以前拥有多个内部子网。

相关内容