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