【发布时间】:2015-10-02 03:59:40
【问题描述】:
好的,在 AWS 中设置一个 MySQL RDS 数据库。它不可公开访问。如果我将 Putty 放入同一子网中的 EC2 盒中,我可以在启动 Navicat 时通过隧道访问数据库。
切换到 Linux RedHat 机器(运行 Percona 5.5.44)。 我想连接到 RDS 数据库的隧道,并使其在本地端口 3308 上可用(端口 3306 已经有一个本地 MySQL 数据库,3307 [备份] 也是如此)。
telnet localhost 3308
返回
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
所以,那里什么都没有,这是我所期望的。
运行 SSH:
ssh -L 3308:blahblah.us-east-1.rds.amazonaws.com:3306 -i key.ssh user@AWS_EC2box.com -f -N
其中 blahblah 是 RDS 服务器,AWS_EC2 是同一子网上的 EC2 服务器。
再次尝试远程登录:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
N
5.6.23-logV[>e`3|9▒7{(SL_zgu7Rumysql_native_password
我知道我想要的数据库正在运行 MySQL 5.6.23,所以很可能这是我正在寻找的数据库。
现在试试:
mysql -P 3308 -u testuser -p
Enter password:
ERROR 1045 (28000): Access denied for user 'testuser'@'localhost' (using password: YES)
无论我尝试使用哪个用户,使用密码或不使用密码,将插件设置为 mysql_old_password 并使用 Old_Password,一切都失败了。
但是我可以在我的 Windows PC 上使用 PuTTy 和 Navicat 进行设置,并且每次都可以使用相同的用户、相同的密码。 PuTTy 使用同一个 EC2 盒建立隧道,并进入同一个 RDS 盒。我已经多次拆除并重新完成双方的连接。 没有喜悦。那我做错了什么?
【问题讨论】:
-
连接被拒绝=防火墙,或者mysql没有在那个端口上监听。拒绝访问 = 您已建立连接,但未使用正确的凭据登录。
-
但我通过 Navicat 使用相同的凭据(用户名和密码 - 没有困难)。甚至尝试在没有密码的情况下建立连接。还是进不去。
标签: mysql linux amazon-web-services