5

我正在试用 AWS EC2 和 RDS。我已经按照本教程进行了操作,并且成功了,但是本教程缺少数据库迁移。 https://www.youtube.com/watch?v=YJoOnKiSYws那么,有人能指出我继续进行数据库迁移的正确方向吗?

我已经尝试过https://support.cloud.engineyard.com/entries/21009887-Access-Your-Database-Remotely-Through-an-SSH-Tunnel 但由于 RDS 权限问题,它对我不起作用。

我也尝试过亚马逊上的说明,http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html 但它让我更加困惑。
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html

我在 AWS 论坛上发布了一条消息,但没有人回答。我希望这里有人可以帮助我。我只需要一些简单的例子,比如

step1.  From local pc export MySQL with mysqldump (done)
step2.  Upload local mysqldump.sql file to EC2  (I don't know how to do)
step3.  import mysqldump.sql on EC2 to RDS (I don't know how to do)
step4.  connect django web app to use new MySQL database that has data dump  (don't know how)

我真的很感谢你的帮助。

顺便说一句,数据在我运行特立独行操作系统的本地计算机上的 MySQL 中(我希望这些信息有帮助)。

4

1 回答 1

7

如果您使用的是 RDS,则您没有 SSH 访问权限,因此不能选择创建 SSH 隧道。

因此,您的问题缺少的是您是否在 VPC 中,因此假设您不在 VPC 中。在本质上:

  1. 在 RDS 安全组上,打开用于访问数据库的 EC2 实例所在的入口 EC2 安全组。例如,在 RDS 控制台上,这显示为实际的 EC2 安全组名称

    EC2 RDS 安全组

(要进入安全组,请单击 RDS->Security Groups->Create DB Security Group,您首先要新建一个 DB Security Group 以查看上面的屏幕截图,或者您可以使用默认的 DB Security Group):

  1. 将数据库转储到运行原始 MySQL 数据库的服务器上。希望这是您允许作为上述 RDS 安全组入口的 EC2 安全组中的同一台服务器:mysqldump -uroot -p <database-name> > database-name.sql

  2. 从 RDS 安全组允许的 EC2 安全组中的 EC2 实例加载数据库:

    • mysql -uroot -h<RDS-hostname> -p < database-name.sql

    • RDS 主机名如下所示:database-name.xxxxxxxxxx.us-east-1.rds.amazonaws.com

  3. 您不必连接到 RDS 数据库即可将转储加载到其中。但如果你想连接到它,你可以运行:mysql -uroot -p -h<RDS-hostname>

如果您在 VPC 中,请确保您从中运行命令的 EC2 实例与您的 RDS 实例位于相同的 VPC 和子网中。VPC Subnet group您必须在 RDS 控制台上为您的 VPC创建一个,Subnet group如果您正在运行多可用区 RDS 实例,则它必须位于两个不同的可用区中。除此之外,程序是相同的。

于 2014-03-24T04:25:17.007 回答