我想在我的本地机器上设置一个开发环境,以访问AWS上的MySQL数据库,但我不断收到“无法连接”消息。从本地机器上连接到AWS上的MySQL
mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');
我还注释了my.cnf文件中的绑定地址,并授予了正在连接的IP地址的权限。
任何人都成功得到这个工作?
我想在我的本地机器上设置一个开发环境,以访问AWS上的MySQL数据库,但我不断收到“无法连接”消息。从本地机器上连接到AWS上的MySQL
mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');
我还注释了my.cnf文件中的绑定地址,并授予了正在连接的IP地址的权限。
任何人都成功得到这个工作?
我想这是亚马逊的防火墙,请尝试使用SSH隧道:
http://blogs.oracle.com/divyen/entry/connecting_mysql_server_on_amazon
注意:不要打开MySQL的公众网络,利用IP过滤即使是在。 SSH隧道更安全。最好的部分是:你的机器上可以使用本地主机:3306访问隧道,不需要更改配置:)
如何使用PHP? mysql_connect()函数? –
上面的博客条目使用3307作为本地端口,因此它不会干扰本地mysql。您可以使用'mysql_connect('localhost:3307',$ user,$ pw)'然后通过隧道到AWS。 –
感谢它与MySQL Workbench一起工作......仍然遇到了mysql_connect的问题,但我会一起玩。 –
如果您通过RDS实例在AWS上使用MySql,则必须添加您想要的IP地址连接到“数据库安全组”。要执行此操作,请转至您的AWS管理控制台并选择RDS。从选择框的左侧面板
2.选择“默认”
3.选择“CIDR/IP”上
1.选择“DB安全组”,然后输入您工作站的公共IP地址。例如:
23.234.192.123/32(不要忘了/ 32的单一IP)
4.单击“添加”
5.等待几分钟让它生效,然后连接您的MySql客户端。
这仅适用于RDS实例,如果您使用的是安装在EC2实例上的MySql,则说明与从任何远程计算机访问MySql相同。
,而不是通过将您的客户端的IP地址添加到RDS实例,我只是连接到可以连接到RDS的正在运行的EC2实例。因此,您在MySQL WB的“管理数据库连接”对话框中的连接方法是“标准TCP/IP over SSH”,然后指定SSH参数,最重要的是指定MySQL主机名,即RDS主机名。 – mblackwell8
@ mblackwell8有没有人对MySQL WB有任何提及?我们正试图从本地连接一个php应用程序。 – Neo
由于左侧面板中没有“数据库安全组”部分,因此现在已过时。 –
我一直在使用MySQL Workbench http://www.mysql.com/products/workbench/与RDS,它工作得很好。非常容易创建并保存新的数据库服务实例。点击“服务器管理”下的“新服务器实例”,然后按照提示进行操作。您需要输入该实例的AWS RDS网页中提供的信息(例如,它是端点)。
注意:为了让您真正连接,您必须在“数据库安全组”中添加您的IP地址。该链接位于左侧栏中,标题为“导航”。我使用“CIDR/IP”选项(另一个是EC2安全组)。确保在IP之后包含“/ ##”,例如它们在示例中使用的“/ 32”(您将在页面上看到它)。几秒钟后,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);
我8月2013年的经验是通过弹性魔豆创建一个RDS实例如下。
0)假设RDS实例已经被创建
1)登录到管理控制台:https://console.aws.amazon.com/console/home
2)选择服务 - > VPC
3)选择安全组(在左侧)
4)选择描述为“RDS DB的安全组...”的组 5)在页面底部的安全组选择面板中,选择“入站”
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
很好的答案!那正是我正在寻找的 – Ertai
我做到了。然后在终端输入:ssh database.blablabla.us-west-2.rds.amazonaws.com:3306,但它说“操作主机blablabla操作超时” – coolcool1994
尝试mysql --host blah-blah-blah .us-west-2.rds.amazonaws.com --port 3306 -u <我的用户名> -p – mikemay
我在Windows 7计算机上,必须进行以下3项更改才能连接到AWS RDB。在AWS控制台
VPC安全组更新(类似于mikemay具有以上)
的my.cnf更新
关闭Windows防火墙
这些改变之后,我能够使用数据库 - 通过两个
命令提示
mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
不......我的意思是我的机器在我家里......这将是一个遥远的地方连接。 –
查看答案:您需要在关联的安全组中打开您的MySQL端口。 – jsalonen
可能的TCP连接到MySQL的安全被禁用?检查/etc/mysql/my.cnf中的跳过网络 –