Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | 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