我正在尝试在我的本地计算机上设置一个访问AWS上的MySQL数据库的开发环境,但我一直收到“无法连接”的消息。
mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');
我还注释了my.cnf文件中的bind-address,并授予了连接IP地址的权限。
任何人都能顺利完成这项工作吗?
答案 0 :(得分:37)
我在2013年8月的经验如下,通过Elastic Beanstalk创建的RDS实例。
0)假设已经创建了RDS实例
1)登录管理控制台:https://console.aws.amazon.com/console/home
2)选择服务 - > VPC
3)选择安全组(左侧)
4)选择描述为“RDS DB的安全组...”的组
5)在页面底部的Security Group Selected面板中,选择“Inbound”
6)选择MySQL作为规则
7)输入我本地机器的IP地址,例如145.23.32.15/32
8)单击添加规则并应用规则更改
执行此操作后,我可以使用本地计算机上的mysql连接到数据库。
a)从管理控制台选择服务 - > RDS
b)单击数据库实例(我只有一个)并为所需实例选择“转到详细信息页面”
c)从端点获取主机和端口
d)从终端会话中执行如下操作:mysql --host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u my-user-name -p
答案 1 :(得分:29)
如果您通过RDS实例在AWS上使用MySql,则必须将要连接的IP地址添加到“数据库安全组”。要执行此操作,请转到AWS Managment Console并选择RDS。
1.在左侧面板中选择“数据库安全组”
2.选择“默认”
3.从选择框中选择“CIDR / IP”,然后输入工作站公共IP地址。示例:
23.234.192.123/32(不要忘记单个ip的/ 32 )
4.单击“添加”
5.等待几分钟使其生效,然后连接MySql客户端。
这仅适用于RDS实例,如果您使用的是安装在EC2实例上的MySql,则说明与从任何远程计算机访问MySql相同。
答案 2 :(得分:13)
我认为这是亚马逊的防火墙,尝试使用SSH隧道:
http://blogs.oracle.com/divyen/entry/connecting_mysql_server_on_amazon
注意:即使使用IP过滤,也不要将MySQL打开到公共互联网。 SSH隧道更安全。最好的部分:可以使用localhost:3306访问隧道,无需更改配置:)
答案 3 :(得分:2)
我一直在使用MySQL Workbench http://www.mysql.com/products/workbench/和RDS,效果很好。很容易创建和保存新的数据库服务实例。单击“服务器管理”下的“新服务器实例”,然后按照提示进行操作。您需要输入AWS RDS网页中为该实例提供的信息(例如,它的端点)。
注意:为了实际连接,您必须在“数据库安全组”中添加您的IP地址。该链接位于左侧列中,标题为“导航”。我使用“CIDR / IP”选项(另一个是EC2安全组)。确保在IP之后包含“/ ##”,例如他们在示例中使用的“/#”(您将在页面上看到它)。几秒钟后,IP地址应该被授权。
之后,返回MySQL Workbench并完成新服务器实例创建过程。
要使用连接,您的代码可能看起来像这样(我的Java代码的摘录):
String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
答案 4 :(得分:1)
我在Windows 7计算机上,必须进行以下3项更改才能连接到AWS RDB。
AWS Console中的VPC安全组更新(类似于上面的mikemay)
本地MySQL配置中的my.cnf更新
关闭Windows防火墙
完成这些更改后,我可以通过两者进行连接
使用
命令提示符mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
答案 5 :(得分:0)
创建RDS时,需要将防火墙配置为接受来自本地或其他实例的mySQL连接,例如,在防火墙级别丢弃数据包,以解决此问题,您需要:
记下mySQL服务器的安全组(在我的情况下为awseb-e)
从列表中选择mySQL,添加客户端服务器的详细信息并保存规则
注意:一旦选择我的IP,AWS选择您的IP,如果您需要其他IP使用
https://www.whatismyip.com/my-ip-information/
并添加您的IP4 IP