gpt4 book ai didi

mysql - 无法从 CLI MySQL Linux 客户端访问 AWS RDS MySQL DB;在 Navicat 中运行良好

转载 作者:太空狗 更新时间:2023-10-29 12:14:13 25 4
gpt4 key购买 nike

好的,在 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 盒。我已经多次拆除并重新完成两侧的连接。没有快乐。那我做错了什么?

最佳答案

错误消息中的 'testuser'@'localhost' 表明您在这里实际执行的操作与您打算执行的操作不同。

RDS 永远不会将您识别为来自 localhost

这里的问题是您使用-P (--port) 选项调用mysql 命令行客户端,而没有相应的选项-H (--host) 参数。如果没有 --host--port 将被忽略(这似乎没有记录,但如果你仔细想想它是有道理的——没有关联 IP 主机的 IP 端口不会'具有任何明确定义的含义)。

您实际上是通过 unix 套接字连接到您的本地计算机。 (SET GLOBAL LOG_WARNINGS = 2; 在您的本地 MySQL 实例上,您将在本地 MySQL 错误日志中看到这些失败的登录。)

$ mysql -H 127.0.0.1 -P 3308 -u testuser -p

...是您要查找的选项的组合。

关于mysql - 无法从 CLI MySQL Linux 客户端访问 AWS RDS MySQL DB;在 Navicat 中运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com