Lau*_*ent 5 mysql amazon-ec2 amazon-web-services amazon-rds
我有一个 EC2 实例,我正在尝试连接到 RDS (mySQL) 实例。
我创建了一个 RDS mySQL 实例,名称为: mydbinstance, user:mysuperuser和一个通用的 8 个字符 ( mypassword) 只是为了测试目的。
虚拟私有云:默认 (与EC2所在位置相同)
子网组:默认
公共可访问性:否(数据库实例不会分配公共 IP 地址。VPC 之外的任何 EC2 实例或设备都无法连接。)
可用区:无偏好
VPC 安全组:创建新的 VPC 安全组
IAM 数据库身份验证:已禁用
我将 RDS 实例添加到与 EC2 实例相同的 VPC,因此它位于同一区域中。
dbinstance 正在使用新的安全组:
类型:自定义 TCP 规则协议:TCP 端口:3306 CIDR:174.62.127.135/32
这个IP地址来自哪里?我在实例化时没有指定任何东西......
接下来,我通过 SSH 连接到我的 EC2 实例(位于同一 VPC 中的实例),然后尝试:
$ mysql -h mydbinstance.$(RDS_INSTANCE).us-west-2.rds.amazonaws.com -P 3306 -u mymasteruser -p
Run Code Online (Sandbox Code Playgroud)
我mypassword在提示符下输入(我之前指定的那个),然后得到:
错误 1045 (28000):用户“mymasteruser”@“localhost”的访问被拒绝(使用密码:是)
我尝试使用 获取 EC2 框的 IP 地址ifconfig,并使用它更新了 RDS 使用的安全组 IP 地址(我在上面想知道的那个)。同样的结果,没有运气连接。从那以后我一直在谷歌上搜索答案。
我还有哪些其他选项可以调试?我将不胜感激任何建议。
更新
我能够从我的笔记本电脑上运行它(通过将数据库更改Public Access为YES):
mysql -h mydbinstance.$(RDS_INSTANCE).us-west-2.rds.amazonaws.com -P 3306 -u mymasteruser -p
Run Code Online (Sandbox Code Playgroud)
找到 0 个关联,找到 1 个连接:
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif en3
src 192.168.86.33 port 55863
dst xx.xxx.xxx.xxx port 3306
rank info not available
TCP aux info available
Run Code Online (Sandbox Code Playgroud)
但是我无法从我的 EC2 实例中获得任何输出。它挂了!同样为什么我运行 netcat (nc) 命令。为什么这不适用于我的 EC2 实例?
在 aws 论坛上找到金块后,我能够使其工作。如果有人偶然发现同样的问题,请将其发布回此处:
\n\n\n\n“为了连接到 MySQL,您必须授权您计划连接到 MySQL 的主机的 IP\n 地址。您\n 还应该撤销当前已授权的 CIDR 的访问权限。\n 如果您不这样做\xe2\x80\x99 不知道您的计算机\xe2\x80\x99s IP 地址,您可以通过访问站点http://checkip.amazonaws.com/来查看它。请注意,\n 必须添加 \xe2 \x80\x9c/32\xe2\x80\x9d 到此末尾,将 IP 地址转换为仅包含该 IP 地址的 CIDR。例如,如果您的 IP\n 地址是 192.0.2.10,则应该授权访问 CIDR\n 192.0.2.10/32。
\n
| 归档时间: |
|
| 查看次数: |
16403 次 |
| 最近记录: |