使用 MySQL Workbench 連接到私有 VPC 子網中的數據庫實例
如何使用 MySQL Workbench 連接到 VPC 中私有子網中的 AWS(或其他)實例?
我的安排是典型的 aws場景 2:
我可以:
- 通過 SSH 連接到位於我的 VPC 公有子網中
的 NAT 實例 - 從我的 NAT 實例通過 SSH 連接到我的 VPC 私有子網中的數據庫實例- 連接到我的私有數據庫實例後,
以使用者身份連接到 MySQL
root
設置系統以通過 MySQL 工作台遠端連接的正確程序是什麼?
使用 MySQL Workbench 通過 NAT 連接到私有子網實例中的數據庫
創建一個可以遠端連接的mysql使用者:
- 預設情況下,
root
使用者無法遠端連接- 創建一個允許從您的 IP 地址連接的使用者(或使用 % 表示任何地址)
– 通過 SSH 連接到私有子網中的數據庫實例
– 以 root 身份登錄 mysql 並在出現提示時輸入密碼:
mysql -h localhost -u root -p
– 執行以下查詢用於創建使用者
CREATE USER 'username'@'XX.XX.XX.XX' IDENTIFIED BY 'mypassword';
- 確保您添加的使用者具有所需的所有權限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'IP' IDENTIFIED BY 'password';
- 確保您添加的使用者在使用者名或密碼中不重複
– 使用以下 mysql 查詢在終端中查看使用者表:
select * from mysql.user\G;
– 為了安全和潛在的使用者衝突,刪除匿名使用者是個好主意: https: //stackoverflow.com/questions/10299148
- 完成執行查詢時:
FLUSH PRIVILEGES;
設置您的安全組以允許通過 NAT 實例進行遠端 MySQL 連接:
- 使用 WorkBench,您通過 SSH 隧道連接到 NAT,然後通過埠 3306 連接到數據庫實例
- 確保您要連接的 IP 允許連接到 AWS 安全組中
的埠 3306——NAT 實例應該有 SSH(22)從你的 IP 地址入站
——NAT 實例應該有 MySQL(3306)出站到VPC 地址範圍(例如 10.0.0.0/16)——VPC
私有子網中的數據庫實例應允許來自 VPC 私有 IP 範圍(例如 10.0.0.0/16)的入站MySQL(3306)
設置 Workbench 以通過 NAT 實例連接到您的數據庫實例:
- 打開工作台
- 創建一個新連接並為其命名(例如 my_vpc_db1)
——選擇“標準 TCP/IP over SSH”作為連接方法——SSH
主機是 NAT 實例的公共 IP,例如 XX.XX.XX.XX
——SSH使用者名 = ec2-user
– SSH 密碼為空(必要時清除此密碼)
– SSH 密鑰文件 = 瀏覽到 key_pair.pem 文件的位置
– MySQL 主機名 = VPC 中數據庫實例的私有 IP 地址
– MySQL伺服器埠 = 3306
– 使用者名 = 你剛剛在 CREATE USER 中添加的名稱
– 密碼 = 剛剛在 CREATE USER 中添加