暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从自建MySQL迁移至PolarDB MySQL版(mysqldump工具)

2023-10-24
92

本文介绍如何使用mysqldump工具将自建MySQL数据库迁移至PolarDB MySQL版。

前提条件

目标PolarDB MySQL版集群需已完成如下操作:

迁移方式对比


对比项mysqldumpDTS
自建MySQL数据库版本无限制自建MySQL数据库版本为5.1、5.5、5.6、5.7或8.0版本。
是否支持结构迁移和全量数据迁移支持支持
是否支持增量数据迁移不支持支持
是否支持不停机迁移不支持支持

说明

使用DTS工具进行数据迁移的操作步骤,请参见从自建MySQL迁移至PolarDB MySQL

注意事项

迁移后的表名不区分大小写,统一变为小写。

操作步骤

说明

本文以自建MySQL 8.0版本为例,在Linux系统上演示相关操作步骤。

  1. 使用mysqldump导出自建数据库的数据、存储过程、触发器和函数。

    说明

    导出期间请勿进行数据更新,耐心等待导出完成。

    1. 在Linux命令行下导出自建数据库的数据,命令如下:

      说明

      针对自建数据库的连接地址:

      • 若自建MySQL数据库部署在ECS实例上,请填入127.0.0.1
      • 若自建MySQL数据库部署在本地,请填入该数据库的公网连接地址。


      mysqldump -h <自建数据库的连接地址>  -u user -p --opt --default-character-set=utf8 --hex-blob <自建数据库名> --skip-triggers --skip-lock-tables > /tmp/<自建数据库名>.sql

      示例


      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb --skip-triggers --skip-lock-tables > /tmp/testdb.sql
    2. (可选)在Linux命令行下导出存储过程、触发器和函数,命令如下:

      说明

      若数据库中没有使用存储过程、触发器和函数,可跳过该步骤。


      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <自建数据库名> -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/<自建数据库名>Trigger.sql

      示例


      mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob testdb -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/testdbTrigger.sql
  2. 将导出的文件导入到目标PolarDB集群中,命令如下:


    mysql -h <PolarDB集群连接地址> -P <PolarDB集群端口> -u <PolarDB集群账号> -p <PolarDB数据库名称> < /tmp/<自建数据库名>.sql
    mysql -h <PolarDB集群连接地址> -P <PolarDB集群端口> -u <PolarDB集群账号> -p <PolarDB数据库名称> < /tmp/<自建数据库名>Trigger.sql

    示例


    mysql -h polardbtest.mysql.polardb.rds.aliyuncs.com -P 3306 -u testuser -p testdb  < /tmp/testdb.sql
    mysql -h polardbtest.mysql.polardb.rds.aliyuncs.com -P 3306 -u testuser -p testdb  < /tmp/testdbTrigger.sql

    说明

    • PolarDB数据库名称需要是PolarDB集群上已创建的数据库。创建数据库操作,请参见创建数据库
    • PolarDB集群账号需要是高权限账号或具有读写权限的账号。
  3. 导入成功后,您可以登录PolarDB集群数据库中查看数据是否正常。具体操作,请参见连接数据库集群

常见问题

Q:Access denied; you need (at least one of) the SUPER privilege(s) for this operation报错怎么解决?

A:SQL脚本里面包括SUPER权限的语句,将相关语句删除再执行。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论