数据迁移 使用mysqldump迁移MySQL数据 说明:本章节会介绍如何使用mysqldump迁移MySQL数据库数据 迁移准备 关系型数据库服务支持开启公网访问功能,通过弹性公网IP进行访问。您也可通过弹性云服务器的内网访问关系型数据库。 1、准备弹性云服务器或可通过公网访问关系型数据库。 通过弹性云服务器连接关系型数据库实例,需要创建一台弹性云服务器。通过公网地址连接关系型数据库实例,需具备以下条件: (1)先对关系型数据库实例绑定公网地址。 (2)保证本地设备可以访问关系型数据库实例绑定的公网地址。 2、在准备的弹性云服务器或可访问关系型数据库的设备上,安装MySQL客户端。 该弹性云服务器或可访问关系型数据库的设备需要安装和RDS MySQL数据库服务端相同版本的数据库客户端,MySQL数据库或客户端会自带mysqldump和mysql工具。 导出数据 要将源数据库迁移到关系型数据库,需要先对其进行导出。 相应导出工具需要与数据库引擎版本匹配。 数据库迁移为离线迁移,您需要停止使用源数据库的应用程序。 登录已准备的弹性云服务器,或可访问关系型数据库的设备。 使用mysqldump将元数据导出至SQL文件。 MySQL数据库是关系型数据库服务管理所必须的数据库,导出元数据时,禁止指定alldatabase参数,否则会造成数据库故障。 mysqldump databases singletransaction orderbyprimary hexblob nodata routines events setgtidpurgedOFF u p h P sed e 's/DEFINER[ ][ ][^]//' e 's/DEFINER[ ].FUNCTION/FUNCTION/' e 's/DEFINER[ ].PROCEDURE/PROCEDURE/' e 's/DEFINER[ ].TRIGGER/TRIGGER/' e 's/DEFINER[ ].EVENT/EVENT/' > DBNAME为要迁移的数据库名称。 DBUSER为数据库用户。 DBADDRESS为数据库地址。 DBPORT为数据库端口。 BACKUPFILE为导出生成的文件名称。 根据命令提示输入数据库密码。 示例如下: mysqldump databases rdsdb singletransaction orderbyprimary hexblob nodata routines events setgtidpurgedOFF u root p h 192.168.151.18 P 3306 sed e 's/DEFINER[ ][ ][^]//' e 's/DEFINER[ ].FUNCTION/FUNCTION/' e 's/DEFINER[ ].PROCEDURE/PROCEDURE/' e 's/DEFINER[ ].TRIGGER/TRIGGER/' e 's/DEFINER[ ].EVENT/EVENT/' > dumpdefs.sql Enter password: 若使用的mysqldump低于5.6版本,需要去掉“setgtidpurgedOFF”。 命令执行完会生成“dumpdefs.sql”文件,如下: [rds@localhost ~]$ ll dumpdefs.sql rwr. 1 rds rds 2714 Sep 21 08:23 dumpdefs.sql 使用mysqldump将数据导出至SQL文件。 MySQL数据库是关系型数据库服务管理所必须的数据库,导出元数据时,禁止指定alldatabase参数,否则会造成数据库故障。 mysqldump databases singletransaction hexblob setgtidpurgedOFF nocreateinfo skiptriggers u p h P r 上命令的参数说明如步骤2所示。 根据命令提示输入数据库密码。 示例如下: mysqldump databases rdsdb singletransaction hexblob setgtidpurgedOFF nocreateinfo skiptriggers u root p h 192.168.151.18 P 8635 r dumpdata.sql 若使用的mysqldump低于5.6版本,需要去掉“setgtidpurgedOFF”。 命令执行完会生成“dumpdata.sql”文件,如下: [rds@localhost ~]$ ll dumpdata.sql rwr. 1 rds rds 2714 Sep 21 08:23 dumpdata.sql 导入数据 通过弹性云服务器或可访问关系型数据库的设备,用相应客户端连接关系型数据库实例,将导出的SQL文件导入到关系型数据库。 如果源数据库中包含触发器、存储过程、函数或事件调用,则需确保导入前设置目标数据库参数logbintrustfunctioncreatorsON。 导入元数据到关系型数据库。 先用mysql工具连接关系型数据库实例,输入密码后,执行导入命令。