Linux

使用 MySQL Workbench 連接到私有 VPC 子網中的數據庫實例

  • March 17, 2015

如何使用 MySQL Workbench 連接到 VPC 中私有子網中的 AWS(或其他)實例?

我的安排是典型的 aws場景 2

我可以:

  • 通過 SSH 連接到位於我的 VPC 公有子網中

的 NAT 實例 - 從我的 NAT 實例通過 SSH 連接到我的 VPC 私有子網中的數據庫實例- 連接到我的私有數據庫實例後,

以使用者身份連接到 MySQLroot

設置系統以通過 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 中添加

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