我在 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 集群更好的选择。
希望有帮助:)