提问者:小点点

如何导入本地MySQL数据库到RDS数据库实例?


我已经创建了一个RDS的实例,名为realcardiodb(引擎是mysql),我已经从我的localhost导出了我的数据库。文件保存在本地,名为localhostrealcardio. sql

大多数研究都说使用mysqldump将数据从本地系统导入Web服务器,但我的系统甚至无法识别mysqldump。

C:\xampp\mysql>mysqldump
'mysqldump' is not recognized as an internal or external command, operable program or batch   file. 

我应该使用mysqldump如何解决这个错误?(我的系统上肯定安装了mysql)

有没有更好的工具我应该使用?

感谢任何帮助,特别是如果您有将mysql导入aws rds的经验。

谢谢!DK

更新7/31/2012所以我得到了错误解决。mysqldump在bin目录C:\xampp\mysql\bin中

mysqldump acme | mysql --host=hostname --user=username --password acme

有人能帮我分解一下吗?

1)第一个“acme”(在mysqldump命令之后)是我本地数据库的名称还是我保存在本地的导出sql文件?

2)主机名是IP地址、公共DNS、RDSendpoint还是两者都不是?

3)我假设用户名和密码是RDS凭据,第二个顶点是我在RDS中创建的数据库的名称。

谢谢!


共3个答案

匿名用户

这就是我为MySQl表中包含数据的几个实例所做的。

创建RDS数据库实例的步骤:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html

注意:确保RDS实例配置了与EC2安全组相关的安全组。http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Workin...

在我们继续之前,让我列出以下一些占位符:

  • host. address.for.rds.server=这将是RDS描述/设置页面中的终端。
  • rdsusername=您在安装过程中创建RDS主用户帐户。
  • rdsDatabase=您在RDS实例的服务器中创建的空白数据库。
  • backupfile. sql=您使用预先存在的安装数据库制作的sql转储文件。

创建新的RDS数据库实例并配置其安全设置后,登录到此服务器(从ssh会话到EC2服务器),然后使用基本SQL命令在实例内创建一个空数据库。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p
(enter your password)
create database rdsdatabase;

然后退出RDS服务器中的MySQL环境。

\q

本教程假设您已经有旧数据库的备份。如果没有,请立即创建一个。之后,您就可以将该sql转储文件导入等待RDS服务器上的空数据库中了。

mysql -h host.address.for.rds.server -u rdsusername -p  rdsdatabase < backupfile.sql

可能需要几秒钟才能完成,具体取决于sql转储文件的大小。您表示它已完成是bash命令提示符重新出现。

注意:命令“mysqlimport”用于将数据直接导入数据库内的现有表。这可能看起来像是我们在“导入”数据,但这不是我们在这种情况下实际做的事情。我们正在迁移到的数据库还没有表,我们正在使用的sql转储文件包含生成所需表的sql命令。

确认转让

现在,如果您没有收到任何错误消息,那么您的sql传输可能有效。如果需要,您可以通过连接到RDS数据库服务器、查找您创建的数据库并检查表现在是否存在来仔细检查它是否有效。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p
(enter your password)
use rdsdatabase;
show tables;

匿名用户

我更喜欢使用MySQL工作台。它更容易

它提供了一个简单的GUI。

MySQL工作台或SQLYog。

这些是我做的步骤。

1)安装MySQL工作台。

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

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

4)给连接一个您喜欢的名称。

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

6)在主机名字段中输入您的RDSendpoint。

7)端口:3306

8)用户名:主用户名(您在创建RDS实例期间创建的用户名)

9)密码:主密码

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

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

12)打开连接。

13)您将在那里看到您的数据库“real心脏病数据库”。

14)现在您可以将mysqldump文件导出到此数据库。转到-

15)您可以通过简单地打开一个空白的SQL文件来检查数据是否已经迁移

就这样。维奥拉。

匿名用户

如果你有一个backup. sql在你的PC,不需要转移到EC2。只需在你的终端在你的PC下线。

$ mysql -h rdsinstance-hostaddress-ending.rds.amazonaws.com -u rds_username -p  rds_database < /path/to/your/backup.sql

输入密码:paswd_mysql_user

仅此而已。

直接从现有远程服务器导入备份

SSH连接到远程服务器

获取远程服务器mysql备份(backup/path/backupfile. sql)

导入备份文件到RDSmysql,而你在远程服务器外壳

mysql -h your-mysql-instance.region.rds.amazonaws.com -u db_username -p db_name < backup/path/backupfile.sql

注:

我已经尝试了所有上述标准将我现有的备份导入到新的RDS数据库,包括通过EC2AWS留档。这是一个10GB的备份。所以我也尝试了逐个表。它显示过程完成,但对于大表缺少一些数据。所以我不得不写一个DB来DB数据迁移脚本。