如何从另一个 EC2 连接 MySQL 服务器(在 EC2 上)?

如何从另一个 EC2 连接 MySQL 服务器(在 EC2 上)?

我在 EC2(CentOS 7)上创建了两个实例。我正在尝试部署 MySQL InnoDB 集群。当我添加实例(slave)时,我发现无法连接 master。

我可以使用本地的 GUI 工具连接主服务器,但无法使用 mysql cli 从主服务器连接从服务器。我已关闭防火墙和 iptables,还禁用了 SELINUX。我的安全组已打开所有流量。我不知道还应该检查什么。希望有人能帮我解决这个问题。

这是我的错误:

[root@ip-172-31-25-217 centos]# mysql -u root -p -h node2 -P 3306
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'node2' (110)

答案1

听起来像安全组问题。

确保两个 EC2 实例位于同一个安全组并确保 SG 允许来自同一组成员的流量到 TCP 端口 3306。

为此,请转到 EC2 控制台 ➡ 实例并选择您的实例。检查下面的内容安全组在详细信息中,以及他们是否附加了相同的 SG。如果他们不通过操作(在顶部)➡ 网络➡ 进行更改更改安全组

接下来检查 SG 是否允许该 SG 的所有成员访问 tcp/3306。假设组 ID 为sg-1234abcd- 您可以在组 ID柱子。

单击 EC2 中的安全组名称 ➡ 实例详细信息,将打开一个新屏幕。转到入站屏幕下半部分的选项卡,并确保其中有一行内容:

| MySQL | TCP | 3306 | sg-1234abcd |

如果没有,请点击编辑并添加这样一条规则。

这应该可以解决你的问题。

但是请考虑使用AWS 关系数据库服务 (RDS)而不是在 EC2 实例上设置 MySQL 复制。RDS 提供托管、高可用性数据库,具有自动故障转移功能,与 MySQL 100% 兼容。除非您有非常特殊的要求,否则 RDS 很可能是比管理您自己的 MySQL 集群更好的选择。

希望有帮助:)

相关内容