mysqldump参数罗列

 --default-character-set

当导出的数据有emoji表情时,就需要指定默认字符集为utf8mb4,否则导出导入之后,就全成问号了

--hex-blob

BINARY, VARBINARY, BLOB类型导出时会以十六进制表示,而不是以二进制,二进制导出的文件无法编辑

--complete-insert

默认导出的语法为insert into `t` values (xx, xx, xx, ...),而当表结构有变化时,导出再导入后就会混乱,哪怕只是字段先后顺序不一致。使用该参数,导出的sql会变成insert into `t` (f1, f2, f3, ...) vlaues (xx, xx, xx, ...)

--where

导出时相当于加一个where条件

--no-create-info

导出时没有drop table if exists `t`和create table `t` (),也就是只有数据,没有表的drop和create

--no-data

不导出数据,只有表的drop和create语法,正好跟--no-create-info相反

--replace

不使用insert into `t` values 语法,而使用replace into `t` values 语法,这样当导入时,表里如果已经有数据,也是直接覆盖(先delete再insert),不会出现插入失败的错误

--insert-ignore

使用insert ignore into语法,这样当导入时,表里如果已经有数据了,就会跳过主键一样的数据,也不会出错。这正好跟--replace行为相左

--skip-extended-insert

默认是使用一个insert into语句插入所有的数据,使用该参数后,一行一条insert语句,当然插入效率会比较低

-r --result-file

结果输出到文件,跟结果重定向到文件效果一样

最后,举个栗子:

./bin/mysqldump db table --hex-blob --complete-insert --no-create-info --default-character-set=utf8mb4 --where='id<=10013' > dump.sql

 

发表于 2017年03月07日 16:46   评论:0   阅读:1776  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo