我有一个EC2实例,我正在尝试连接到RDS(mySQL)实例。
我创建了一个名为mydbinstance
的RDS mySQL实例,用户: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
我在提示符处输入了mypassword
(我之前指定的那个),我得到了:
错误1045(28000):拒绝访问用户' mymasteruser' @' localhost' (使用密码:是)
我尝试使用ifconfig
获取EC2框的IP地址,并更新了RDS使用的安全组IP地址(我上面想知道的那个)。同样的结果,没有运气连接。从那以后,我一直在谷歌搜索答案。
我有什么其他选择来调试这个?我很感激任何建议。
更新
我可以通过笔记本电脑运行此功能(通过将数据库Public Access
更改为YES
):
mysql -h mydbinstance.$(RDS_INSTANCE).us-west-2.rds.amazonaws.com -P 3306 -u mymasteruser -p
发现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
但是我无法从我的EC2实例获得任何输出。它挂了!与我运行netcat(nc)命令的原因相同。为什么这不适用于我的EC2实例?
答案 0 :(得分:0)
我在aws论坛上找到了金块后,我能够使它工作。如果有人偶然发现同一问题,请将其发回此处:
&#34;要连接到MySQL,您必须授权IP 您计划连接到MySQL的主机的地址。您 还应撤销您当前授权的CIDR的访问权限。 如果您不知道计算机的IP地址,可以看到它 访问网站http://checkip.amazonaws.com/。请注意,你会 必须在此末尾添加“/ 32”才能将IP地址转换为a 仅包含该IP地址的CIDR。例如,如果您的IP 地址是192.0.2.10,您应该授权访问CIDR 192.0.2.10/32。