使用mysqldump迁移MySQL数据 本文为您介绍如何通过mysqldump将用户自建数据库数据迁移到天翼云关系数据库MySQL。 前期准备 准备能够远程连接关系数据库MySQL的机器。 通过弹性云主机连接关系数据库MySQL,需要创建一台弹性云主机。 通过公网地址连接关系数据库MySQL,需要将关系数据库MySQL绑定公网地址。 关系数据库MySQL实例设置白名单。 在准备的弹性云主机或其他可访问关系数据库MySQL的设备上,安装MySQL客户端。 创建关系数据库MySQL账号。 说明 弹性云主机或可访问关系数据库MySQL的设备需要安装和关系数据库MySQL相同版本的数据库客户端。(如果不相同则只能够向后兼容,例如用5.7版本的mysqldump来导出5.5版本的数据库数据) 适用场景 mysqldump迁移复杂,且需要停止源数据库的应用程序,建议数据量小的场景下使用。 数据量大的场景下建议优先使用DTS迁移数据。 导出数据 需要先对源数据库进行导出,才能将其迁移到关系数据库MySQL。 1. 登录源数据库。 2. 使用mysqldump导出自建数据库的表结构和数据,命令如下: 说明 数据库迁移为离线迁移,您需要停止使用源数据库的应用程序。 下文中的自建数据库用户需要具备相关的操作权限。 若使用的mysqldump低于5.6版本,需要去掉“setgtidpurgedOFF”。 bash mysqldump h u p P databases opt defaultcharactersetutf8 hexblob singletransaction setgtidpurgedOFF skiptriggers skipevents skiproutines > /tmp/ data.sql 示例: bash mysqldump h xxx u root p P databases test opt defaultcharactersetutf8 hexblob singletransaction setgtidpurgedOFF skiptriggers skipevents skiproutines > /tmp/testdata.sql 3. 使用mysqldump导出自建数据库的触发器、事件、存储过程和函数,命令如下: 说明 如果源数据库中没有使用触发器、事件、存储过程和函数,可跳过此步骤。 bash mysqldump h u p P database opt defaultcharactersetutf8 hexblob singletransaction setgtidpurgedOFF nocreateinfo nodata routines events sed e 's/DEFINER[ ][ ][^]//' e 's/DEFINER[ ].FUNCTION/FUNCTION/' e 's/DEFINER[ ].PROCEDURE/PROCEDURE/' e 's/DEFINER[ ].TRIGGER/TRIGGER/' e 's/DEFINER[ ].EVENT/EVENT/' > /tmp/ trigger.sql 示例: bash mysqldump h xxx u root p P databases test opt defaultcharactersetutf8 hexblob singletransaction setgtidpurgedOFF nocreateinfo nodata routines events sed e 's/DEFINER[ ][ ][^]//' e 's/DEFINER[ ].FUNCTION/FUNCTION/' e 's/DEFINER[ ].PROCEDURE/PROCEDURE/' e 's/DEFINER[ ].TRIGGER/TRIGGER/' e 's/DEFINER[ ].EVENT/EVENT/' > /tmp/testtrigger.sql