Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 知乎专栏 | 视频教程 | About

2.2. mysqldump - a database backup program

2.2.1. 备份数据库并压缩文件

			
mysqldump -uroot -p dbname | gzip > dbname.backup
			
			

2.2.2. 备份数据库/表

			
mysqldump -uroot -p -d database
mysqldump -uroot -p -d database table
			
			

2.2.3. 备份到文件

-r, --result-file=name 输出文件

			
mysqldump --default-character-set=utf8 -r mysql.sql -h localhost -u root -p yourdb
			
			

2.2.4. 备份数据库,无结构,只有数据

-t, --no-create-info Don't write table creation info.

			
mysqldump -uroot -p -t -d database
			
			

2.2.5. 使用完整的insert插入数据

-c, --complete-insert Use complete insert statements.

$ mysqldump -hlocalhost -uroot -t neo test

INSERT INTO `test` VALUES (98,'neo','chen'),(112,'jam','zheng'),(113,'john','meng');

$ mysqldump -hlocalhost -uroot -c -t neo test
INSERT INTO `test` (`userid`, `username`, `password`) VALUES (98,'neo','chen'),(112,'jam','zheng'),(113,'john','meng');
			

2.2.6. --extended-insert / --skip-extended-insert

--extended-insert 默认开启

INSERT INTO `test` VALUES (98,'neo','chen'),(112,'jam','zheng'),(113,'john','meng');
			

每条记录使用一次insert

$ mysqldump -hlocalhost -uroot --skip-extended-insert -t neo test |more
INSERT INTO `test` VALUES (98,'neo','chen');
INSERT INTO `test` VALUES (111,'neo','chen');
INSERT INTO `test` VALUES (112,'jam','zheng');
INSERT INTO `test` VALUES (113,'john','meng');
			

2.2.7. --skip-lock-tables

mysqldump 时禁止锁表

使用 --skip-lock-tables 参数,不会影响正在备份的表SELECT操作。

2.2.8. --skip-add-locks

该参数mysqldump输出中包含下面

默认情况

LOCK TABLES `tbl_name` WRITE;
			

如果使用这个参数就不会输出 LOCK TABLE

2.2.9. --where

mysqldump -hlocalhost -umysql -ppasswd database table --where="id>128"
			

2.2.10. 注释信息--comments /--skip-comments

--comments附加注释信息,默认为打开。可以用--skip-comments取消

--
-- Table structure for table `demo`
--

DROP TABLE IF EXISTS `demo`;	

...
...

-- Dump completed on 2014-02-13 13:31:05		
			

使用 --skip-comments后

DROP TABLE IF EXISTS `demo`;	
...
...			
			

2.2.11. 不导出注释信息

--compact

			
mysqldump --default-character-set=utf8  -h localhost -u root -p -t  yourdb yourtable --skip-extended-insert --compact			
			
			

运行后导出纯净的 INSERT 语句

2.2.12. 字符集设置

			
mysqldump --default-character-set=utf8 -r mysql.sql -h 192.168.0.24 -u root -p yourdb