Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

将数据从 MySQL 或 MariaDB 数据库导入到 Amazon RDS MySQL 或 MariaDB 数据库实例

将数据从现有的 MySQL 或 MariaDB 数据库导入 Amazon RDS MySQL 或 MariaDB 数据库实例的最简单方法是,使用 mysqldump 复制数据库,然后通过管道直接将数据传输到 Amazon RDS MySQL 或 MariaDB 数据库实例中。mysqldump 命令行实用工具通常用于创建备份以及将数据从一个 MySQL 或 MariaDB 服务器传输到另一个 MySQL 或 MariaDB 服务器。该实用工具包含在 MySQL 和 MariaDB 客户端软件中。

将数据从外部数据库移动到 Amazon RDS 数据库实例的典型 mysqldump 命令类似于以下示例:

Copy
mysqldump -u <local_user> \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -p<local_password> | mysql -u <RDS_user> \ --port=<port_number> \ --host=<host_name> \ -p<RDS_password>

重要

确保 -p 选项和输入的密码之间不留空格。

所用参数如下所示:

  • -u <local_user> – 用于指定用户名。在第一次使用此参数时,您指定由 --databases 参数确定的本地 MySQL 或 MariaDB 数据库中的用户账户名称。

  • --databases <database_name> – 用于指定本地 MySQL 或 MariaDB 实例上的数据库名称,您希望将该数据库导入 Amazon RDS。

  • --single-transaction – 用于确保从本地数据库加载的所有数据都与单一时间点保持一致。如果在 mysqldump 读取数据期间有其他进程更改数据,使用此选项有助于保持数据完整性。

  • --compress – 将数据从本地数据库发送到 Amazon RDS 之前进行压缩,以降低网络带宽消耗。

  • --order-by-primary – 根据主键对每个表中的数据进行排序,以减少加载时间。

  • -p<local_password> – 用于指定密码。在第一次使用此参数时,您为第一个 -u 参数确定的用户账户指定密码。

  • -u <RDS_user> – 用于指定用户名。在第二次使用此参数时,您指定由 --host 参数确定的 Amazon RDS MySQL 或 MariaDB 数据库实例中的默认数据库的用户账户名称。

  • --port <port_number> – 用于为您的 Amazon RDS MySQL 或 MariaDB 数据库实例指定端口。默认情况下此值为 3306,除非您在创建实例时进行了更改。

  • --host <host_name> – 用于从 Amazon RDS 数据库实例终端节点指定 DNS 名称,例如,myinstance.123456789012.us-east-1.rds.amazonaws.com。您可以在 Amazon RDS 管理控制台上的实例详细信息中找到终端节点值。

  • -p<RDS_password> – 用于指定密码。在第二次使用此参数时,您为第二个 -u 参数确定的用户账户指定密码。

您必须在 Amazon RDS 数据库中手动创建任何存储过程、触发器、函数或事件。如果您所复制的数据库中有上述任一对象,则在运行 mysqldump 时排除这些对象,方式是将以下参数与 mysqldump 命令一起包含:--routines=0 --triggers=0 --events=0

以下示例将本地主机上的 world 示例数据库复制到 Amazon RDS MySQL 数据库实例中。

针对 Linux、OS X 或 Unix:

Copy
sudo mysqldump -u localuser \ --databases world \ --single-transaction \ --compress \ --order-by-primary \ -plocalpassword | mysql -u rdsuser --port=3306 \ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com \ -prdspassword

对于 Windows,右键单击 Windows 程序菜单上的 Command Prompt 并选择 Run as administrator 打开命令提示符,运行以下命令:

Copy
mysqldump -u localuser ^ --databases world ^ --single-transaction ^ --compress ^ --order-by-primary ^ -plocalpassword | mysql -u rdsuser ^ --port=3306 ^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com ^ -prdspassword