从MySQL导入数据到PolarDB-X,请按照以下步骤进行操作。
- 从MySQL中导出数据到文件。
输入以下命令,从MySQL中导出表内数据(不推荐导出表结构),假设导出文件为dump.sql。
mysqldump -h ip -P port -u user -pPassword --default-character-set=char-set --net_buffer_length=204800 --no-create-db --no-create-info --skip-add-locks --skip-lock-tables --skip-tz-utc --set-charset --hex-blob database [table1 table2 table3...] > dump.sql - 登录PolarDB-X,手动建立目标表,关于PolarDB-X建表语句的语法请参见CREATE TABLE(DRDS模式)。如果未加--no-create-info参数,导出的dump.sql文件中包含MySQL端的建表语句,也可在文件中修改建表语句。
- 导入数据文件到PolarDB-X中。您可以通过如下两种方式导入数据文件到PolarDB-X:
- 通过
mysql -h ip -P port -u user -pPassword --default-character-set=char-set命令登录目标PolarDB-X,执行source /yourpath/dump.sql命令将数据导入到目标PolarDB-X。 - 直接通过
mysql -h ip -P port -u user -pPassword --default-character-set=char-set< /yourpath/dump.sql命令将数据导入到目标PolarDB-X。
说明
- 上述两个命令中
default-character-set要设置成实际的数据编码。如果是Windows平台,source命令指定的文件路径需要对分隔符转义。 - 第一种方式会把所有的步骤回显到屏幕上,速度略慢,但是可以观察导入过程。
- 导入时由于某些PolarDB-X和MySQL实现上的不同,可能会报错,错误信息类似
ERROR 1231 (HY000): [a29ef6461c00000][10.117.207.130:3306][****]Variable @saved_cs_client can't be set to the value of @@character_set_client。此类错误信息并不影响导入数据的正确性。
- 通过
从一个PolarDB分布式版导入到另一个PolarDB分布式版
假设您之前有一个测试环境的PolarDB-X,测试完毕以后,需要把测试过程中的一些表结构和数据导入到生产环境的PolarDB-X中,那么可以按照以下步骤进行操作。
- 从源PolarDB-X中导出数据到文本文件。请参见场景一步骤一。
- 导入数据文件到PolarDB-X。请参见场景一步骤三。
- 手动创建Sequence对象。
mysqldump并不会导出PolarDB-X中的Sequence对象,所以如果在源PolarDB-X中使用了Sequence对象,并且需要在目标PolarDB-X中继续使用相同的Sequence对象,则需要手动在目标PolarDB-X中创建同名的Sequence的对象。具体步骤如下:
- 在源PolarDB-X上执行
SHOW SEQUENCES,获取当前PolarDB-X中Sequence对象的状态。 - 在目标PolarDB-X数据库上通过
CREATE SEQUENCE命令创建新的Sequence对象。
Sequence命令详情请参见Sequence。
- 在源PolarDB-X上执行
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




