【问题标题】:Deploy Django using MySQL to AWS EC2 and RDS使用 MySQL 将 Django 部署到 AWS EC2 和 RDS
【发布时间】:2014-05-01 05:13:00
【问题描述】:

我正在试用 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 中(我希望这些信息有帮助)。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-rds django-deployment


    【解决方案1】:

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

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

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

    (要进入安全组点击RDS->安全组->创建数据库安全组,你先新建一个数据库安全组看上面的截图或者你可以使用默认的数据库安全组):

    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 和子网中。您必须在 RDS 控制台上为您的 VPC 创建一个 VPC Subnet group,如果您正在运行多可用区 RDS 实例,则此 Subnet group 必须位于两个不同的可用区中。除此之外,程序是相同的。

    【讨论】:

    • 嗨,Rico,这个解释非常有用。是的,RDS 在 VPC 中。我想我误解了将数据(在我的本地计算机上)导入 RDS 的步骤。我将修改问题。根据流量,至少还有几个人认为这个问题值得一读。所以我希望你能为你的答案增添更多色彩。
    • @vt2424253 添加了 VPC 的详细信息。所以它基本上是相同的过程,除了你必须确保你的 RDS 和 EC2 实例在同一个 VPC 中。
    • 我是 AWS 新手,我真的不知道如何确保 RDS 和 EC2 实例在同一个 VPC 中。实际上,我搜索了所有内容,但找不到您的步骤(1)的屏幕截图。对于步骤(2)。我不知道如何登录到 EC2 服务器,所以我无法执行第 (3) 步。感谢您帮助我。
    • 检查我的编辑。您需要先在 RDS 控制台中创建一个 RDS 数据库安全组才能看到截图
    • 谢谢里科。我非常感谢您的帮助,并对我的问题非常耐心。
    猜你喜欢
    • 2015-08-05
    • 2021-06-11
    • 2022-06-13
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 2019-01-21
    • 2018-02-06
    相关资源
    最近更新 更多