【发布时间】:2021-06-20 01:50:21
【问题描述】:
我已经在 AWS 上的 Ubuntu 20.04 LTS (ARM) 实例上安装了 MySQL 8.0.25。
我可以在本地使用 127.0.0.1 地址访问它,但不能从另一个实例远程访问它。
“Bind-address”最初被注释掉了,我取消注释并更改为“0.0.0.0”(mysql服务已重新启动) - 没有帮助,所以我将其注释回来。
cnf文件中没有“Skip-networking”。
我将端口更改为 3307 只是为了确保我正在查看正确的 cnf,现在 MYSQL 确实侦听了 3307 端口:
我知道防火墙运行良好,因为如果我从规则中删除端口 3307,错误会有所不同:
如您所见,TCP 错误 111 ("Connection Refused") 变成了错误 113 ("No Route to Host")。
我已重新启动 MySQL 实例 - 没有任何变化。
如果“bind-address”被注释掉并且防火墙是打开的,为什么MYSQL会拒绝远程连接?
【问题讨论】:
-
我只看到它在 127.0.0.1 上监听,而不是 0.0.0.0。如果您没有绑定到 0.0.0.0,它将无法远程访问。当您设置绑定地址时,您的 netstat 是否发生了变化?
-
我看不到您的安全组是如何设置的。你也可以发一下吗?
-
@RodrigoM - 安全组从任何地址打开端口 22、3306 和 3307。如果 SG 是问题所在,那么关闭 Ubuntu 防火墙中的端口不会将 TCP 错误从 111 更改为 113。
-
@stdunbar - 当我将“bind-address”更改为“0.0.0.0”并重新启动 MySQL 时,netstat 仍将“127.0.0.1:3307”显示为本地地址,并将 0.0.0.0:* 显示为国外地址。i.imgur.com/zhiQkm0.jpeg
标签: mysql amazon-web-services ubuntu