15-输出格式选项
--compact选项使得输出结果简洁,不包括默认选项中的各种注释。下例中对test数据库中的表emp进行简洁导出:
[zzx@localhost~]$ mysqldump -uroot --compact test emp >a
[zzx@localhost~]$ more a
CREATE TABLE 'emp' (
'id' int(11) NOT NULL default '0',
'name' varchar(200) default NULL,
'content' text,
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO 'emp' VALUES (1,'z1','aa'),(2,'z1','aa'), (3,'z1','aa'), (4,'z1','aa');
-c 或者--complete-insert选项使得输出文件中的insert语句包括字段名称,默认是不包括字段名称的。下例中对test数据库中的表emp使用此选项进行导出:
[root@localhost test]# mysqldump -uroot test emp -c --compact >a
[root@localhost test]# more a
CREATE TABLE 'emp' (
'id' int(11) NOT NULL default '0',
'name' varchar(200) default NULL,
'content' text,
PRIMARY KEY ('id'),
KEY 'idx_name' ('name')
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO 'emp' ('id', 'name', 'content') VALUES (1,'z1','aa'),(2,'z1','aa'), (3,'z1','aa'),(4,'z1','aa');
-T选项将指定数据表中的数据备份为单纯的数据文本和建表SQL两个文件,经常和下面几个选项一起配合使用,将数据导出为指定格式显示。下面几个选项的具体使用方法,在将会在第27章“备份与恢复”中进行详细的讲解。
-T ,--tab=name(备份数据和建表语句);
--fields-terminated-by=name(域分隔符);
--fields-enclosed-by=name(域引用符);
--fields-optionally-enclosed-by=name(域可选引用符);
--fields-escaped-by=name(转义字符)。
在下面的例子中,将test数据库中的表t2导出为单纯的数据文本和建表SQL两个文件,并存放在当前路径下的bak子目录下。
(1)创建备份目录。
[mysql@localhost~]$ mkdir bak
(2)将test1数据库下的表t2备份到bak目录下。
[mysql@localhost~]$ mysqldump -uroot -p test1 t2 -T ./bak
Enter password:
(3)进入bak目录,发现生成了两个文件,一个是.sql,另一个是.txt。
[mysql@localhost~]$ cd bak
[mysql@localhost bak]$ ls
t2.sql t2.txt
(4)查看两个文件的内容,.sql文件存放了建表语句,而.txt文件存放了实际的数据。
[mysql@localhost bak]$ more t2.sql
-- MySQL dump 10.9
--
-- Host: localhost Database: test1
-- Server version 4.1.13-standard-log
/!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /;
/!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /;
/!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /;
/!40101 SET NAMES utf8 /;
/!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' /;
/!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 /;
--
-- Table structure for table 't2'
--
DROP TABLE IF EXISTS 't2';
CREATE TABLE 't2' (
'id' int(11) default NULL,
'name' varchar(10) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/!40101 SET SQL_MODE=@OLD_SQL_MODE /;
/!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT /;
/!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS /;
/!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION /;
/!40111 SET SQL_NOTES=@OLD_SQL_NOTES /;
[mysql@localhost bak]$ more t2.txt
1 z1
2 z2