Mysql

如何從另一個 EC2 連接 MySQL 伺服器(在 EC2 上)?

  • September 29, 2018

我在 EC2 (CentOS 7) 上創建了兩個實例。我正在嘗試部署 MySQL InnoDB Cluster。當我添加實例(slave)時,我發現無法連接 master。

我可以在本地使用 GUI 工具連接主伺服器,但不能使用 mysql cli 從主伺服器連接從伺服器。我已經關閉了 firewalld 和 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)

這聽起來像一個安全組問題。

確保兩個 EC2 實例位於同一個安全組中,並確保 SG 允許來自同一組成員的 TCP 埠 3306 的流量。

為此,請轉到 EC2 控制台 ➡ 實例並選擇您的實例。檢查詳細資訊中的安全組下的內容以及它們是否附加了相同的 SG。如果他們不通過 Actions(頂部)➡ Networking ➡ Change Security Groups 更改它。

接下來檢查 SG 是否允許該 SG 的所有成員訪問 tcp/3306。假設組 ID 是- 您可以在Group IDsg-1234abcd中找到真正的 SG ID 。

點擊 EC2 ➡ 實例詳細資訊中的安全組名稱,將打開一個新螢幕。轉到螢幕下半部分的入站選項卡,並確保它有一行顯示:

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

如果它沒有點擊編輯並添加這樣的規則。

那應該可以解決您的問題。

但是,請考慮使用AWS 關係數據庫服務 (RDS),而不是在 EC2 實例上設置 MySQL 複製。RDS 提供具有自動故障轉移功能的託管、高可用性數據庫,與 MySQL 100% 兼容。除非您有非常非常特殊的要求,否則 RDS 很可能是比管理自己的 MySQL 集群更好的選擇。

希望有幫助:)

引用自:https://serverfault.com/questions/932893