MENU

使用mysqldump从AWS RDS迁移MySQL到阿里云RDS

2018 年 09 月 17 日 • 阅读: 3587 • 阿里云,aws亚马逊,mysql备份

适用场景

本文适用于使用mysqldump工具从AWS RDS迁移MySQL到阿里云RDS。
环境准备

已创建AWS RDS MySQL 5.6 或更低版本。

已创建阿里云RDS MySQL 5.6实例,数据库可用空间大小要有AWS RDS显示的数据大小的2倍以上(是因为导入数据库时产生的Binlog,后续会自动清理掉的)。

一台装有MySQL Client 5.6的Linux或Windows机器。

操作步骤

设置 AWS RDS 使用外网地址访问,操作步骤如下所示:

    打开AWS RDS Console, 进入要迁移实例的Dashboard页面。记下group id (红框部分),然后在页面左边单击Security Groups。

1.png
在Security Group页面选择相应的group,红框部分对应第一步的group id。选择Inboud选项卡,单击Edit按钮。
2.png
在弹出对话框中,Type下拉列表中选择MySQL,Source下拉列表中选择Anywhere,单击Save按钮。
3.png
从Linux机器上检查一下是否可以连接。连接命令格式如下所示:

mysql –h <连接地址> -P <端口> -u <用户名> -p <密码> <数据库名>

检查结果如下图所示:
4.png
5.png
创建阿里云RDS帐号,操作步骤如下所示:

登录 RDS 管理控制台,选择目标实例。

选择菜单中的账号管理,单击创建账号,如下图所示。

6.png
输入要创建的账号信息,单击确定,如下图所示。
7.png

    数据库账号:由2~16个字符的小写字母,数字或下划线组成、开头需为字母,结尾需为字母或数字。

    密码:该账号对应的密码,由6~32个字符的字母、数字、中划线或下划线组成。

    确认密码:输入与密码一致的字段,以确保密码正确输入。

    备注说明:可以备注该账号的相关信息,便于后续账号管理,最多支持256个字符(1个汉字等于2个字符)。

创建阿里云RDS数据库,操作步骤如下所示:

选择菜单中的数据库管理,单击创建数据库,如下图所示。

8.png
输入要创建的数据库信息,单击确定,如下图所示。
9.png

        数据库(DB)名称:由2~64个字符的小写字母、数字、下划线或中划线组成,开头需为字母,结尾需为字母或数字。

        支持字符集:设置数据库的字符集:utf8、gbk、latin1和utf8mb4。

        授权账号:选择该数据库授权的账号。如果尚未创建账号,该值可以为空。

        账号类型:选择授权账号后可见,设置该数据库授权给授权账的权限,可以设置为读写或者只读。

备注说明:可以备注该数据库的相关信息,便于后续数据库管理,最多支持256个字符(1个汉字等于2个字符)。

使用mysqldump进行正式的数据迁移。具体迁移时间依赖于数据量大小。迁移命令格式如下所示:

mysqldump –h <AWS RDS地址> -P <端口> -u <用户名> –p <密码> <数据库名> --single-transaction --routines --triggers  --compress  --compact | mysqldump –h<阿里云RDS地址> -u<用户名> –p<密码> <数据库名>

注意:

这种方法可能会受到网络抖动或断开的影响。

远程到Linux的SSH session要保持不能断开,建议在screen里面运行能够保持session。

兼总条贯 知至知终

最后编辑于: 2018 年 12 月 06 日