300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql dump 导入导出_使用mysqldump导入导出数据

mysql dump 导入导出_使用mysqldump导入导出数据

时间:2019-08-04 10:30:36

相关推荐

mysql dump 导入导出_使用mysqldump导入导出数据

DRDS支持MySQL官方数据导出工具mysqldump。本文围绕DRDS数据导入导出的几种常见场景对操作步骤和注意事项进行说明。mysqldump命令的详细说明请参见MySQL官方文档。

mysqldump 适合小数据量(低于1000万)的离线导入导出。

场景一:从MySQL导入到DRDS

从MySQL导入数据到DRDS,请按照以下步骤进行操作。

1.从MySQL中导出数据到文本文件。

输入以下命令,从MySQL中导出表结构和数据。假设导出文件为 dump.sql。

mysqldump-h ip-P port-u user-ppassword--default-character-set=char-set--net_buffer_length=10240--no-create-db--skip-add-locks--skip-lock-tables--skip-tz-utc--set-charset[--hex-blob][--no-data]database[table1 table2 table3...]>dump.sql

参数说明如下,请根据实际情况输入:

参数名 说明 是否必选ip DRDS实例的 IP。 ✔️

port DRDS实例的端口。 ❌

user DRDS的用户名。 ✔️

password DRDS的密码,注意前面有个-p,之间没有空格。 ✔️

char-set 指定的编码。 ✔️

--hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响的字段类型包括 BINARY、VARBINARY、BLOB。 ❌

--no-data 不导出数据。 ❌

table 指定导出某个表。默认导出该数据库所有的表。

2.修改建表语句。

从MySQL导出的数据文件包含每个表的建表语句。如果直接在在DRDS上执行这些建表语句,会在DRDS上建立一个单表。如果要对某个表进行分库分表,那么需要手工对建表语句进行修改。

3.导入数据文件到DRDS。您可以通过如下两种方式导入数据文件到DRDS:

通过mysql -h ip -P port -u user --default-character-set=char-set命令登录目标DRDS,执行source /yourpath/dump.sql命令将数据导入到目标DRDS。

直接通过mysql -h ip -P port -u user --default-character-set=char-set< /yourpath/dump.sql命令将数据导入到目标DRDS。

上述两个命令中default-character-set要设置成实际的数据编码。如果是Windows平台,source命令指定的文件路径需要对分隔符转义。

第一种方式会把所有的步骤回显到屏幕上,速度略慢,但是可以观察导入过程。

导入的时候,由于某些PDRDS和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。此类错误信息并不影响导入数据的正确性。

场景二:从一个DRDS导入到另一个DRDS

假设您之前有一个测试环境的DRDS,测试完毕以后,需要把测试过程中的一些表结构和数据导入到生产环境中的DRDS中,那么可以按照以下步骤进行操作。

从源DRDS中导出数据到文本文件。请参见场景一第1步。

导入数据文件到DRDS。请参见场景一第3步。

手动创建Sequence对象。

mysqldump并不会导出DRDS中的Sequence对象,所以如果在源DRDS中使用了Sequence对象,并且需要在目标DRDS中继续使用相同的Sequence对象,则需要手工在目标DRDS中创建同名的Sequence的对象。具体步骤如下:

a. 在源DRDS上执行SHOW SEQUENCES,获取当前DRDS中的Sequence对象的状态。

b. 在目标DRDS数据库上通过CREATE SEQUENCE命令创建新的Sequence对象。

场景三:从DRDS导出数据到MySQL

从DRDS导出数据到MySQL,和在DRDS之间相互导入数据的过程类似,也分为以下几个步骤。

从源DRDS中导出表结构和数据。请参见场景一第1步。

手动修改拆分表的DDL语句。

DRDS中拆分表的建表语句和MySQL并不兼容。为了后续导入到MySQL中,需手动修改导出的SQL文件,删除以下关键字:

DBPARTITION BY hash(partition_key):

TBPARTITION BY hash(partition_key):

TBPARTITIONS N

BROADCAST

例如一个拆分表语句导出如下:

CREATE TABLE multi_db_single_tbl

(idint,

name varchar(30),

primary key(id))dbpartitionbyhash(id);

需修改成以下语句:

CREATE TABLE multi_db_single_tbl

(idint,

name varchar(30),

primary key(id));

导入修改以后的文件。请参见场景一第3步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。