从本地计算机连接到AWS上的MySQL

时间:2011-12-01 15:42:32

标签: mysql amazon-web-services remote-access

我正在尝试在我的本地计算机上设置一个访问AWS上的MySQL数据库的开发环境,但我一直收到“无法连接”的消息。

mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');

我还注释了my.cnf文件中的bind-address,并授予了连接IP地址的权限。

任何人都能顺利完成这项工作吗?

6 个答案:

答案 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。

  1. AWS Console中的VPC安全组更新(类似于上面的mikemay)

    • https://console.aws.amazon.com,点击服务(左上角),然后选择VPC。
    • 下一步选择安全组
    • 单击具有“RDS DB的安全组...”
    • 描述的安全组
    • 在“入站”标签上,在“创建新规则”下拉列表中选择“MYSQL”。
    • 以CIDR格式添加您的IP地址,然后点击添加规则。
    • 点击Apply Rule Changes。
  2. 本地MySQL配置中的my.cnf更新

    • 将“bind-address = 127.0.0.1”更改为“bind-address = 0.0.0.0”
    • 评论“skip-networking”
  3. 关闭Windows防火墙

    • 转到“控制面板/系统和安全/ Windows防火墙”并关闭“Windows防火墙”。
  4. 完成这些更改后,我可以通过两者进行连接

    • MySQL WorkBench使用数据库 - >连接到数据库
    • 使用

      命令提示符
      mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
      

答案 5 :(得分:0)

创建RDS时,需要将防火墙配置为接受来自本地或其他实例的mySQL连接,例如,在防火墙级别丢弃数据包,以解决此问题,您需要:

  • 登录到您的AWS控制台转到RDS

enter image description here

记下mySQL服务器的安全组(在我的情况下为awseb-e)

  • 点击安全组
  • 在中心菜单awseb中单击您的组
  • 单击“入站”选项卡

从列表中选择mySQL,添加客户端服务器的详细信息并保存规则

enter image description here 注意:一旦选择我的IP,AWS选择您的IP,如果您需要其他IP使用

https://www.whatismyip.com/my-ip-information/

并添加您的IP4 IP

enter image description here