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