Mysql
如何從另一個 EC2 連接 MySQL 伺服器(在 EC2 上)?
我在 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 ID列
sg-1234abcd
中找到真正的 SG ID 。點擊 EC2 ➡ 實例詳細資訊中的安全組名稱,將打開一個新螢幕。轉到螢幕下半部分的入站選項卡,並確保它有一行顯示:
| MySQL | TCP | 3306 | sg-1234abcd |
如果它沒有點擊編輯並添加這樣的規則。
那應該可以解決您的問題。
但是,請考慮使用AWS 關係數據庫服務 (RDS),而不是在 EC2 實例上設置 MySQL 複製。RDS 提供具有自動故障轉移功能的託管、高可用性數據庫,與 MySQL 100% 兼容。除非您有非常非常特殊的要求,否則 RDS 很可能是比管理自己的 MySQL 集群更好的選擇。
希望有幫助:)