如何使用MySQL Workbench连接到VPC中私有子网上的AWS(或其他)实例?
我的安排是典型的安排情景2 :
我可以:
– SSH到位于我的VPC公共子网中的NAT实例
– 从我的NAT实例到我的VPC私有子网中的数据库实例的SSH
– 一旦连接到我的私人数据库实例,以root用户身份连接到MySQL
build立系统通过MySQL工作台进行远程连接的正确程序是什么?
创build一个可以远程连接的mysql用户:
root用户无法远程连接 创build一个允许从你的IP地址进行连接的用户(或使用%表示任何地址)
– 通过SSH连接到私有子网中的数据库实例
– 以root身份login到mysql,并在提示时键入密码:
mysql -h localhost -u root -p
– 运行以下查询来创build一个用户
CREATE USER 'username'@'XX.XX.XX.XX' IDENTIFIED BY 'mypassword';
– 确保您添加的用户具有所需的所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'IP' IDENTIFIED BY 'password';
确保您添加的用户在用户名或密码中不重复
– 使用以下mysql查询在terminal中查看用户表:
select * from mysql.user\G;
– 删除安全和潜在用户冲突的匿名用户是一个好主意: https : //stackoverflow.com/questions/10299148
当完成运行查询时: FLUSH PRIVILEGES;
设置您的安全组以允许通过NAT实例进行远程MySQL连接:
与WorkBench你是SSH隧道到NAT然后通过端口3306连接到数据库实例
确保您连接的IP被允许连接到AWS安全组中的端口3306
– NAT实例应该使用从您的IP地址入站的 SSH(22)
– NAT实例应该有朝向VPC地址范围(例如10.0.0.0/16)的MySQL(3306)
– VPC私有子网中的数据库实例应允许来自VPC私有IP范围(例如10.0.0.0/16)的入站 MySQL(3306)
设置工作台以通过NAT实例连接到您的数据库实例: