使用mysqldump从AWS RDS迁移MySQL到阿里云RDS
适用场景
本文适用于使用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。
在Security Group页面选择相应的group,红框部分对应第一步的group id。选择Inboud选项卡,单击Edit按钮。
在弹出对话框中,Type下拉列表中选择MySQL,Source下拉列表中选择Anywhere,单击Save按钮。
从Linux机器上检查一下是否可以连接。连接命令格式如下所示:
mysql –h <连接地址> -P <端口> -u <用户名> -p <密码> <数据库名>
检查结果如下图所示:
创建阿里云RDS帐号,操作步骤如下所示:
登录 RDS 管理控制台,选择目标实例。
选择菜单中的账号管理,单击创建账号,如下图所示。
输入要创建的账号信息,单击确定,如下图所示。
数据库账号:由2~16个字符的小写字母,数字或下划线组成、开头需为字母,结尾需为字母或数字。
密码:该账号对应的密码,由6~32个字符的字母、数字、中划线或下划线组成。
确认密码:输入与密码一致的字段,以确保密码正确输入。
备注说明:可以备注该账号的相关信息,便于后续账号管理,最多支持256个字符(1个汉字等于2个字符)。
创建阿里云RDS数据库,操作步骤如下所示:
选择菜单中的数据库管理,单击创建数据库,如下图所示。
输入要创建的数据库信息,单击确定,如下图所示。
数据库(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。