1. 程式人生 > 實用技巧 >Mysql之mysqldump工具使用

Mysql之mysqldump工具使用

mysqldump

官方文件:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

mysqldump客戶端是一個mysql自帶的邏輯備份工具,可以用匯出sql語句形式一次匯出多個數據庫進行備份。mysqldump還可以生成csv、xml或其他定界符文字。

檢視幫助

mysqldump --help

引數

-h: 主機
-P: 埠
-u: 使用者名稱
-p: 密碼

--databases: 指定資料庫名
--tables: 指定表名

-t: 不使用create table建表和drop table語句(--no-create-info)
-d: 不匯出表資料(--no-data)

-c:insert語句展示完整欄位(--complete-insert)
--replace:使用replace into語句,當值(主鍵/唯一鍵)存在時刪除舊資料插入新資料
--insert-ignore:使用insert-ignore語句插入,當值(主鍵/唯一鍵)存在時忽略新資料保留舊資料

-w: 新增表條件(--where=name)

常用指令碼

mysqldump -u root -p --all-databases > D:/mysql.sql  #備份所有資料庫
mysqldump -uroot -p123456 --databases db1 db2 db3 > D:/mysql.sql  #備份多個數據庫
mysqldump -hhostname -Pport -uroot -p"123456" --databases dbname > D:/mysql.sql   #遠端備份(遠端時,需要多加入-h:主機名,-P:埠號)

#帶條件匯出指定表的部分資料
mysqldump -h222.222.221.197 -uroot -proot DBname TABLEname -t --complete-insert -w"sys_create > '2020-12-26 00:00:00'">export.sql   

#一次性匯出匯入資料庫(!!!慎用,兩個伺服器寫反了就完蛋了,因為匯出的sql中有drop table語句)
mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2 

#匯出為壓縮包,這樣會小很多,線上伺服器儘量用這個,推薦!!!
mysqldump --opt -uroot -p123456 -h127.0.0.1 --databases dbname --ignore-table=dbname.table1 | gzip>/db_back/dbname_`date +%F`.zip