2012-05-20 65 views
3

我试图使用命令从本地机器导入我的.sql转储AWS RDS数据库实例:无法从本地MySQL服务器连接到AWS RDS数据库实例

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump --host=localhost 
--user=root --password=admin e_learning_system | mysql 
--host=mydbinstance.cyz1k1vacvdd.us-east-1.rds.amazonaws.com 
--user=root --password=adminadmin e_learning_system 

但引发此错误:

ERROR 2003 (HY000): Can't connect to MySQL server on 'mydbinstance.cyz1k1vacvdd.us-east-1.rds.amazonaws.com' (10060) mysqldump: Got errno 22 on write

如何更正此问题?

+2

您是否编辑过RDS主机的安全组以打开您的IP地址的MySQL TCP端口? – Phil

回答

0

错误2003意味着没有连接到mysql服务器。检查您是否允许连接到RDS安全组中RDS的机器。

5

是,亚马逊青苗应用和RDS安全组必须是同一连接的应用程序的数据库实例..

右击数据库实例,并使用由青苗应用程序中添加一个新的安全组..

+5

屏幕截图或来源材料可能会有所帮助。 – JSuar

2

我更喜欢使用MySQL工作台。比命令行方式更容易用户友好。

它提供了一个简单的GUI。

MySQL工作台或SQL Yog。

这些是我做的步骤。

1)安装MySQL Workbench。

2)在AWS控制台中,您的RDS实例必须有一个安全组。将入站规则添加到该组,以允许来自您的计算机的连接。这很简单。添加您的IP地址。

3)打开MySQL工作台,添加一个新的连接。

4)给连接一个你喜欢的名字。

5)选择连接方法 - 标准TCP/IP

6)在主机名的字段中输入您的RDS端点(mydbinstance.cyz1k1vacvdd.us-east-1.rds.amazonaws.com)。

7)端口:3306

8)用户名:主用户名(你创建你的RDS实例的过程中创建的一个)(根)

9)密码:主密码(admin管理员)

10)单击测试连接以检查您的连接。

11)如果连接成功,请单击确定。

12)打开连接。

13)你会在那里看到你的数据库'e_learning_system'。

14)现在你可以将你的mysqldump文件导出到这个数据库。转到 - >服务器。点击数据导入。

15)您可以通过简单地打开空白SQL文件来检查数据是否已被迁移&在基本SQL命令中输入如use database,select * from table;

+0

这不回答这个问题。问题是他的db实例不接受传入连接。使用工作台不会解决这个问题。 –

5

如果有人仍然在寻找像我这样的解决方案,我设法通过在我的RDS实例中设置安全组来完成它。只需转到该安全组,您将在“安全和网络”部分找到该点击。进入安全组页面后,编辑入站规则,将源代码暂时更改为0.0.0.0/0(表示接受),然后导入数据库转储。这应该工作。但请记住,您可能想要将其恢复到生产环境中的这一设置。

+0

啊,修好了!但是你能告诉我为什么它不安全?有人滥用它的意思是无论如何都必须知道用户名和密码,对吧? – SexyBeast

0

我得到了同样的错误,我通过将mysql.exe添加到我连接到的机器的防火墙来解决它。