I am trying to set up a dev environment on my local machine that accesses a MySQL DB on AWS, but I keep getting a "Can't connect" message.


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

I also commented out the bind-address in the my.cnf file, and granted permissions to the IP address that is connecting.


Anyone ever successfully get this working?


5 个解决方案



I suppose this is firewalled by Amazon, try using a SSH tunnel:




Note: Do not open MySQL to the public internet, not even when using IP filtering. SSH tunnels are way more secure. Best part of it: The tunnel could be accessible with localhost:3306 on your machine, no need to change the config : )

注意:即使使用IP过滤,也不要将MySQL打开到公共互联网。 SSH隧道更安全。最好的部分:隧道可以通过localhost:3306在您的机器上访问,无需更改配置:)



My experience in Aug-2013 was as follows for an RDS instance created through Elastic Beanstalk.

对于通过Elastic Beanstalk创建的RDS实例,我在2013年8月的经验如下。

0) Assuming the RDS instance has already been created
1) Log in to the management console: https://console.aws.amazon.com/console/home
2) Select Services->VPC
3) Select Security Groups (on the left hand side)
4) Select the group whose description says "Security Group for RDS DB..."
5) In the Security Group Selected panel at the bottom of the page, choose "Inbound"
6) Select MySQL as the rule.
7) Type the ip address of my local machine e.g.
8) Click Add Rule and Apply Rule Changes

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)单击“添加规则”和“应用规则更改”

After doing this I could connect to the database using mysql from my local machine.


a) From management console select Services->RDS
b) Click on DB Instances (I have only one) and select "Go to Details Page" for the required instance
c) Obtain Host and Port from the endpoint
d) From a terminal session do soemthing like: mysql --host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u my-user-name -p

a)从管理控制台选择服务 - > RDS b)单击数据库实例(我只有一个)并为所需实例选择“转到详细信息页面”c)从端点获取主机和端口d)从终端会话中执行像:mysql --host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u my-user-name -p



If you are using MySql on AWS via an RDS instance you must add the IP address you want to connect from to the "DB Security Groups". To do this go to your AWS Managment Console and select RDS.
1. Select "DB Security Groups" on the left panel
2. Select "default"
3. Select "CIDR/IP" from the select box and enter your workstations public IP address. Example: (dont forget the /32 for a single ip)
4. Click "Add"
5. Wait a few minutes for it to go into effect and then connect your MySql client.

This only applies for RDS instances, if you are using MySql installed on an EC2 instance then the instructions are the same as accessing MySql from any remote machine.

如果您通过RDS实例在AWS上使用MySql,则必须将要连接的IP地址添加到“数据库安全组”。要执行此操作,请转到AWS Managment Console并选择RDS。 1.选择左侧面板上的“数据库安全组”2.选择“默认”3.从选择框中选择“CIDR / IP”,然后输入工作站公共IP地址。示例:不要忘记单个ip的/ 32)4。单击“添加”5.等待几分钟使其生效,然后连接MySql客户端。这仅适用于RDS实例,如果您使用的是安装在EC2实例上的MySql,则说明与从任何远程计算机访问MySql相同。



I have been using MySQL Workbench https://www.mysql.com/products/workbench/ with RDS and it works great. Very easy to create and save a new database service instance. Click "New Server Instance" under "Server Administration" and follow the prompts. You will need to enter the information provided in the AWS RDS webpage for that instance (for example, it's endpoint).

我一直在使用MySQL Workbench https://www.mysql.com/products/workbench/和RDS,效果很好。很容易创建和保存新的数据库服务实例。单击“服务器管理”下的“新服务器实例”,然后按照提示进行操作。您需要输入AWS RDS网页中为该实例提供的信息(例如,它的端点)。

NOTE: In order for you to actually connect, you MUST add your IP address in the "DB Security Groups." The link is in the left-hand column, which is titled "Navigation." I use the "CIDR/IP" option (the other is EC2 Security Group). Make sure to include a "/##" after the IP, such as the "/32" they use in the example (you will see it on the page). In a few seconds, the IP address should be authorized.

注意:为了实际连接,您必须在“数据库安全组”中添加您的IP地址。该链接位于左侧列,标题为“导航”。我使用“CIDR / IP”选项(另一个是EC2安全组)。确保在IP之后包含“/ ##”,例如他们在示例中使用的“/#”(您将在页面上看到它)。几秒钟后,应该授权IP地址。

After that, go back to MySQL Workbench and complete the New Server Instance creation process.

之后,返回MySQL Workbench并完成新服务器实例创建过程。

To use the connection, your code might look something like this (that excerpts of my Java code):


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);



I am on a Windows 7 machine, and had to make the following 3 changes to be able to connect to AWS RDB.

我在Windows 7计算机上,必须进行以下3项更改才能连接到AWS RDB。

  1. VPC Security Group update in AWS Console (similar to what mikemay has above)

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

    • From https://console.aws.amazon.com, click on Services (top left) and choose VPC.
    • 从https://console.aws.amazon.com,单击服务(左上角)并选择VPC。
    • Next select Security Groups
    • 接下来选择安全组
    • Click on the Security Group which has the description "Security Group for RDS DB..."
    • 单击具有“RDS DB的安全组...”描述的安全组。
    • On the "Inbound" tab, choose "MYSQL" in the Create a New Rule dropdown.
    • 在“入站”选项卡上,在“创建新规则”下拉列表中选择“MYSQL”。
    • Add your IP address in CIDR format and click on Add Rule.
    • 以CIDR格式添加您的IP地址,然后单击添加规则。
    • Click on Apply Rule Changes.
    • 单击“应用规则更改”。
  2. my.cnf update in local MySQL configuration


    • Change "bind-address =" to "bind-address ="
    • 将“bind-address =”更改为“bind-address =”
    • Comment out "skip-networking"
    • 评论“跳过网络”
  3. Turn OFF Windows Firewall


    • Go to Control Panel/System and Security/Windows Firewall and turn OFF Windows Firewall.
    • 转到控制面板/系统和安全/ Windows防火墙,然后关闭Windows防火墙。

After these changes, I am able to connect through both


  • MySQL WorkBench using Database->Connect to Database
  • MySQL WorkBench使用数据库 - >连接数据库
  • Command Prompt with


    mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p