上云无忧 > 文档中心 > 天翼云MySQL数据库数据迁移教程
关系型数据库MySQL版
天翼云MySQL数据库数据迁移教程

文档简介:
使用mysqldump迁移MySQL数据 迁移准备 关系型数据库服务支持开启公网访问功能,通过弹性公网IP进行访问。您也可通过弹性云服务器的内网访问关系型数据库。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

数据迁移


使用mysqldump迁移MySQL数据

迁移准备

关系型数据库服务支持开启公网访问功能,通过弹性公网IP进行访问。您也可通过弹性云服务器的内网访问关系型数据库。

  1. 准备弹性云服务器或可通过公网访问关系型数据库。

  • 通过弹性云服务器连接关系型数据库实例,需要创建一台弹性云服务器。

创建并连接弹性云服务器,请参见8.3.4 如何创建和连接ECS。

  • 通过公网地址连接关系型数据库实例,需具备以下条件。

      1. 先对关系型数据库实例绑定公网地址,如何绑定公网地址,请参见绑定弹性公网IP

      2. 保证本地设备可以访问关系型数据库实例绑定的公网地址。

  1. 在准备的弹性云服务器或可访问关系型数据库的设备上,安装MySQL客户端。

请参见8.3.15 如何安装MySQL客户端。

说明:该弹性云服务器或可访问关系型数据库的设备需要安装和RDS MySQL数据库服务端相同版本的数据库客户端,MySQL数据库或客户端会自带mysqldump和mysql工具。

导出数据

要将源数据库迁移到关系型数据库,需要先对其进行导出。

说明:

l  相应导出工具需要与数据库引擎版本匹配。

l  数据库迁移为离线迁移,您需要停止使用源数据库的应用程序。

              1. 登录已准备的弹性云服务器,或可访问关系型数据库的设备。

              2. 使用mysqldump将元数据导出至SQL文件。


说明:

MySQL数据库是关系型数据库服务管理所必须的数据库,导出元数据时,禁止指定--all-database参数,否则会造成数据库故障。

mysqldump --databases <DB_NAME> --single-transaction --order-by-primary --hex-blob --no-data --routines --events --set-gtid-purged=OFF -u <DB_USER> -p -h <DB_ADDRESS> -P <DB_PORT> |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' -e 's/DEFINER[ ]*=.*FUNCTION/FUNCTION/' -e 's/DEFINER[ ]*=.*PROCEDURE/PROCEDURE/' -e 's/DEFINER[ ]*=.*TRIGGER/TRIGGER/' -e 's/DEFINER[ ]*=.*EVENT/EVENT/' >

  • DB_NAME为要迁移的数据库名称。

  • DB_USER为数据库用户。

  • DB_ADDRESS为数据库地址。

  • DB_PORT为数据库端口。

  • BACKUP_FILE为导出生成的文件名称

根据命令提示输入数据库密码。

示例如下:

mysqldump --databases rdsdb --single-transaction --order-by-primary --hex-blob --no-data --routines --events --set-gtid-purged=OFF -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/' > dump-defs.sql

Enter password:

说明:

若使用的mysqldump低于5.6版本,需要去掉“--set-gtid-purged=OFF”。

命令执行完会生成“dump-defs.sql”文件,如下:

[rds@localhost ~]$ ll dump-defs.sql
-rw-r-----. 1 rds rds 2714 Sep 21 08:23 dump-defs.sql

              1. 使用mysqldump将数据导出至SQL文件。


说明:

MySQL数据库是关系型数据库服务管理所必须的数据库,导出元数据时,禁止指定--all-database参数,否则会造成数据库故障。

mysqldump --databases <DB_NAME> --single-transaction --hex-blob --set-gtid-purged=OFF --no-create-info --skip-triggers -u <DB_USER> -p -h <DB_ADDRESS> -P <DB_PORT> -r <BACKUP_FILE>

以上命令的参数说明如步骤2所示。

根据命令提示输入数据库密码。

示例如下:

mysqldump --databases rdsdb --single-transaction --hex-blob --set-gtid-purged=OFF --no-create-info --skip-triggers -u root -p -h 192.168.151.18 -P 8635 -r dump-data.sql

说明:

若使用的mysqldump低于5.6版本,需要去掉“--set-gtid-purged=OFF”。

命令执行完会生成“dump-data.sql”文件,如下:

[rds@localhost ~]$ ll dump-data.sql
-rw-r-----. 1 rds rds 2714 Sep 21 08:23 dump-data.sql

----结束

导入数据

通过弹性云服务器或可访问关系型数据库的设备,用相应客户端连接关系型数据库实例,将导出的SQL文件导入到关系型数据库。


说明:

如果源数据库中包含触发器、存储过程、函数或事件调用,则需确保导入前设置目标数据库参数log_bin_trust_function_creators=ON。

导入元数据到关系型数据库。

先用mysql工具连接关系型数据库实例,输入密码后,再执行导入命令。

# mysql -f -h -P <DB_PORT> -u root -p < /dump-defs.sql

  • RDS_ADDRESS为关系型数据库实例的IP地址。

  • DB_PORT为当前数据库实例的端口。

  • BACKUP_DIR为“dump-defs.sql”所在目录。

示例如下:

# mysql -f -h 172.16.66.198 -P 3306 -u root -p < dump-defs.sql

Enter password:

导入数据到关系型数据库。

# mysql -f -h -P <DB_PORT> -u root -p < /dump-data.sql

  • RDS_ADDRESS为关系型数据库实例的IP地址。

  • DB_PORT为当前数据库实例的端口。

  • BACKUP_DIR为“dump-data.sql”所在目录。

示例如下:

# mysql -f -h 172.16.66.198 -P 3306 -u root -p < dump-data.sql

Enter password:

查看迁移结果。

mysql> show databases;

示例中,名为my_db的数据库已经被导入了:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

----结束

相似文档
  • 操作场景 关系型数据库服务支持修改主实例和只读实例的实例名称,以方便用户识别。 操作步骤 步骤 1 登录管理控制台。
  • 云数据库MySQL支持自动或手动升级内核小版本,内核小版本的升级涉及性能提升、新功能或问题修复等。 有新的内核小版本发布时,您可以在“实例管理”页面“数据库引擎版本”列看到内核小版本升级提示,单击“补丁升级”跳转到小版本升级页面。
  • 关系型数据库服务支持切换主备实例的可用性策略,以满足不同业务需求。可选择 “可靠性优先”或者“可用性优先”两种策略。 可靠性优先(默认选择):数据库应该尽可能保障数据的可靠性,即数据丢失量最少。对于数据一致性要求较高的业务,建议选择该策略。
  • CPU/内存规格可根据业务需要进行变更,当实例的状态由“规格变更中”变为“正常”,则说明变更成功。 说明: l 当实例进行CPU/内存规格变更时,该实例不可被删除。
  • 随着业务数据的增加,原来申请的数据库磁盘容量可能会不足。尤其当实例显示“磁盘空间满”状态,且数据库不可进行写入操作时,您需要为关系型数据库实例进行扩容。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部