将数据从 MariaDB 或 MySQL 数据库导入到 MariaDB 或 MySQL 数据库实例
您还可以将数据从现有 MariaDB 或 MySQL 数据库导入到 MySQL 或 MariaDB 数据库实例。为此,请使用 mysqldumpmysqldump 命令行实用程序通常用于创建备份以及将数据从一个 MariaDB 或 MySQL 服务器传输到另一个 MariaDB 或 MySQL 服务器。该实用程序包含在 MySQL 和 MariaDB 客户端软件中。
如果您使用 MySQL 数据库实例且您的方案支持,则可以使用备份文件和 Amazon S3 更轻松地将数据移入和移出 Amazon RDS。有关更多信息,请参阅 将备份还原到 MySQL 数据库实例。
将数据从外部数据库移动到 Amazon RDS 数据库实例的典型 mysqldump 命令类似以下内容。
mysqldump -ulocal_user\ --databasesdatabase_name\ --single-transaction \ --compress \ --order-by-primary \ -plocal_password| mysql -uRDS_user\ --port=port_number\ --host=host_name\ -pRDS_password
确保 -p 选项和输入的密码之间不留空格。
确保您了解以下建议和注意事项:
-
从转储文件中排除以下架构:
sys、performance_schema和information_schema。默认情况下,mysqldump实用工程序包括这些架构。 -
如果您需要迁移用户和权限,请考虑使用生成数据控制语言 (DCL) 的工具 (如 pt-show-grants
实用程序) 来重新创建用户和权限。 -
要执行导入,请确保执行此操作的用户有权访问数据库实例。有关更多信息,请参阅 使用安全组控制访问权限。
所用参数如下所示:
-u– 用于指定用户名。在第一次使用该参数时,您指定由local_user--databases参数确定的本地 MariaDB 或 MySQL 数据库中的用户账户名称。--databases– 用于指定本地 MariaDB 或 MySQL 实例上您要导入 Amazon RDS 的数据库的名称。database_name-
--single-transaction– 用于确保从本地数据库加载的所有数据都与单一时间点保持一致。如果在mysqldump读取数据期间有其他进程更改数据,使用该参数有助于保持数据完整性。 --compress– 用于降低网络带宽消耗,方式为将数据从本地数据库发送到 Amazon RDS 之前压缩数据。--order-by-primary– 用于减少加载时间,方式为根据主键对每个表中的数据进行排序。-p– 用于指定密码。在第一次使用该参数时,您为第一个local_password-u参数确定的用户账户指定密码。-u– 用于指定用户名。在第二次使用该参数时,您指定由RDS_user--host参数确定的 MariaDB 或 MySQL 数据库实例中的默认数据库的用户账户名称。--port– 用于为您的 MariaDB 或 MySQL 数据库实例指定端口。默认情况下该值为 3306,除非您在创建实例时进行了更改。port_number-
--host– 用于从 Amazon RDS 数据库实例端点指定域名系统 (DNS) 名称,例如,host_namemyinstance.123456789012.us-east-1.rds.amazonaws.com。您可以在 Amazon RDS 管理控制台上的实例详细信息中找到终端节点值。 -
-p– 用于指定密码。在第二次使用该参数时,您为第二个RDS_password-u参数确定的用户账户指定密码。
确保在 Amazon RDS 数据库中手动创建任何存储过程、触发器、函数或事件。如果您所复制的数据库中有上述任一对象,则在运行 mysqldump 时排除这些对象。为此,使用 mysqldump 命令时请包含以下参数:--routines=0 --triggers=0
--events=0。
以下示例将本地主机上的 world 示例数据库复制到 MySQL 数据库实例中。
对于 Linux、macOS 或 Unix:
sudo mysqldump -ulocaluser\ --databasesworld\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocalpassword| mysql -urdsuser\ --port=3306\ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com\ -prdspassword
对于 Windows,右键单击 Windows 程序菜单上的 Command Prompt(命令提示符)选择 Run as administrator(以管理员身份运行)打开命令提示符,运行以下命令:
mysqldump -ulocaluser^ --databasesworld^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocalpassword| mysql -urdsuser^ --port=3306^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com^ -prdspassword