7.4.1 Dumping Data in SQL Format with mysqldump

7.4 Using mysqldump for Backups  使用mysqldump 用于备份:

7.4.1 Dumping Data in SQL Format with mysqldump
7.4.2 Reloading SQL-Format Backups
7.4.3 Dumping Data in Delimited-Text Format with mysqldump
7.4.4 Reloading Delimited-Text Format Backups
7.4.5 mysqldump Tips

这个章节描述如何使用mysqldump 产生dump文件,如何转储文件,一个dump文件可以用于以下几种方式:


1.作为一个备份让数据恢复在数据库丢失的情况下

2.作为一个数据源用于建立复制slaves

3.作为实验数据的来源

3.1 做一个数据库的拷贝 你可以使用不需要改变原有的数据

3.2 测试潜在的升级兼容性问题

mysqldump 产生2种输出类型,依赖是否制定--tab选项

没有--tab,mysqldump 写SQL语句到输出文件,这个输出有CREATE语句来创建转储的对象(数据库,表,存储过程等等)

INSERT 语句来加载数据到表。

这个输出可以保存到一个文件,然后使用mysql加载来创建转储的对象。



使用 --tab, mysqldump 创建2个输出文件对于每个转储的表。


server 写一个文件作为制表符分隔的文本, 每个表记录一行


7.4.1 Dumping Data in SQL Format with mysqldump  使用mysqldump 转储数据以SQL格式


这个章节介绍如何mysqldump来创建SQL格式的dump文件


默认,mysqldump 写信息作为SQL语句到标准输出,你可以保存输出到一个文件:

shell> mysqldump [arguments] > file_name



转储所有的数据库,调用mysqldump 使用--all-databases option:


shell> mysqldump --all-databases > dump.sql


转储指定的数据库, 在命令行上命名它们 使用--databases选项

shell> mysqldump --databases db1 db2 db3 > dump.sql


--databases 选项将 所有在命令行上指定的名字对待为数据库名字。没有这个选项,

mysqldump 对待第一个名字作为数据库名字


使用--all--databases 或者--databases,mysqldump写CREATE DATABASE 和USE 语句在dump输出之前对于每个数据库。

这个确保 当你加载dump文件时, 它创建每个数据库如果它不存在,让它作为默认的数据库 这样数据库内容是被加载到相同的数据库

如果你要让dump文件强制一个drop 每个数据库在重新创建它之前,使用--add-drop-database选项。


在这种情况下,mysqldump 写一个DROP DATABASE语句在每个CREATE DATABASE 语句之前



dump 单个数据库,命名它在命令行:

 mysqldump --databases test > dump.sql


在单个数据库例子,它是允许忽略--databases选项

shell> mysqldump test > dump.sql


前面2个命令的去呗是 没有--databases,dump 输出不包含CREATE DATABASE 或者USE 语句,这有几个影响:


1,当你加载dump文件的时候,你必须指定一个默认的数据库名字这样server 知道加载到哪个数据库

2.如果数据库被加载的不存在,你必须首先创建它

3.因此输出没有包含CREATE DATABASE 语句,--add--drop-database 选项没有作用


从一个数据库转储指定表,在命令行上指定它们 跟在数据库名字后面

shell> mysqldump test t1 t3 t7 > dump.sql

posted @ 2016-10-17 13:05  czcb  阅读(113)  评论(0编辑  收藏  举报