一税弃、mysqldump的簡(jiǎn)單介紹
mysqldump是MySQL原生自帶的邏輯備份措嵌,單線程工具骏令。
mysqldump?相當(dāng)于一個(gè)MySQL客戶端工具,你的服務(wù)器在遠(yuǎn)程厉亏,mysqldump在本地董习,沒有任何問題,也就意味著二者可以在不同的主機(jī)上爱只。
mysqldump?可實(shí)現(xiàn)完全備份和部分備份皿淋,但是還原一個(gè)庫時(shí),這個(gè)庫得事先存在,就是說在還原前窝趣,先得CREATE DATABASE疯暑。
適用場(chǎng)景:一次性dump備份的數(shù)據(jù)量在10G以下
對(duì)本機(jī)執(zhí)行備份(通過本地socket連接,速度較快)
#? mysqldump -u root -p"MySQL@123"? ?--single-transaction --routines --triggers?--events??test > test.sql
# mysqldump -u root? -h localhost? ?-p"MySQL@123"? ?--single-transaction --routines --triggers?--events??test > test.sql
對(duì)遠(yuǎn)端服務(wù)器執(zhí)行備份(通過TCP協(xié)議連接哑舒,速度一般)
#???mysqldump -u root? -h xx.xx.xx.xx? ?-p"MySQL@123"? ?--single-transaction --routines --triggers?--events??test > test.sql
# mysqldump? --help
#################################################
-h 主機(jī)
-P端口
-u用戶名
-p密碼 (注意不能有空格)
--ignore-table? ?忽略表不到出 舉例? ----ignore-table=dataname.table1 --ignore-table=dataname.table2
-d 結(jié)構(gòu)(--no-data:不導(dǎo)出任何數(shù)據(jù)妇拯,只導(dǎo)出數(shù)據(jù)庫表結(jié)構(gòu))
-t 數(shù)據(jù)(--no-create-info:只導(dǎo)出數(shù)據(jù),而不添加CREATE TABLE 語句)
-n (--no-create-db:只導(dǎo)出數(shù)據(jù)散址,而不添加CREATE DATABASE 語句)
-R (--routines:導(dǎo)出存儲(chǔ)過程以及自定義函數(shù))
-E (--events:導(dǎo)出事件)
--triggers (默認(rèn)導(dǎo)出觸發(fā)器乖阵,使用--skip-triggers屏蔽導(dǎo)出)
-B (--databases:導(dǎo)出數(shù)據(jù)庫列表,單個(gè)庫時(shí)可省略)
--tables 表列表(單個(gè)表時(shí)可省略)
①同時(shí)導(dǎo)出結(jié)構(gòu)以及數(shù)據(jù)時(shí)可同時(shí)省略-d和-t
②同時(shí) 不 導(dǎo)出結(jié)構(gòu)和數(shù)據(jù)可使用-ntd
③只導(dǎo)出存儲(chǔ)過程和函數(shù)可使用-R -ntd
④導(dǎo)出所有(結(jié)構(gòu)&數(shù)據(jù)&存儲(chǔ)過程&函數(shù)&事件&觸發(fā)器)使用-R -E(相當(dāng)于①预麸,省略了-d -t;觸發(fā)器默認(rèn)導(dǎo)出)
⑤只導(dǎo)出結(jié)構(gòu)&函數(shù)&事件&觸發(fā)器使用 -R -E -d
#######################################################
二、備份與還原
數(shù)據(jù)導(dǎo)出
備份單個(gè)庫
#? mysqldump -u root -p"MySQL@123"? ?--single-transaction --routines --triggers? --events? test > test.sql?
還原單個(gè)庫(恢復(fù)時(shí)如果目標(biāo)庫不存在儒将,需要事先手動(dòng)創(chuàng)建)
#??mysql -u root -p"MySQL@123"? ?-e? "create database if not exists test default character set utf8 collate utf8_general_ci;"
#? ?mysql -u root -p"MySQL@123"? -D? test? <???test.sql
備份單個(gè)庫的某張表(registry庫中的role表)
# mysqldump -u root -p"MySQL@123"? --single-transaction --routines? ?--triggers? --events registry role > registry_role.sql
#? ?mysql -u root -p"MySQL@123"? -D? ?registry?? <??registry_role.sql
可以看出吏祸,指定數(shù)據(jù)庫進(jìn)行備份的這種方式,它只是備份這個(gè)庫里的東西钩蚊,它以為這個(gè)庫是事先存在的贡翘,所以恢復(fù)時(shí)是不會(huì)自動(dòng)創(chuàng)建庫的。
備份多個(gè)庫
#? mysqldump -u root -p"MySQL@123" --single-transaction --routines --triggers? --events?? --databases? A? B? ?> AB.sql
還原多個(gè)庫(恢復(fù)時(shí)砰逻,無需事先創(chuàng)建庫)
#? mysql -u root -p"MySQL@123"? ?<? AB.sql?
MySQL的全庫備份
# mysqldump -u root -p"MySQL@123" --single-transaction --routines --triggers? --events --all-databases > all.sql??
默認(rèn)情況下鸣驱,來自具有GTID的服務(wù)器的部分轉(zhuǎn)儲(chǔ)將包括所有事務(wù)的GTID,甚至是那些更改了數(shù)據(jù)庫的已抑制部分的事務(wù)蝠咆。
如果您不想恢復(fù)GTID踊东,請(qǐng)傳遞 --set-gtid-purged = OFF, 要進(jìn)行完整轉(zhuǎn)儲(chǔ)刚操,請(qǐng)傳遞 --all-databases? --triggers --routines --events闸翅。
表結(jié)構(gòu)導(dǎo)出
導(dǎo)出單個(gè)庫中的所有表結(jié)構(gòu)
# mysqldump -u root -p"MySQL@123"? --single-transaction --routines? --triggers? --events? --no-data? registry? > registry_frm.sql
導(dǎo)出單個(gè)庫中的單個(gè)表結(jié)構(gòu)
# mysqldump -u root -p"MySQL@123"? --single-transaction --routines? --triggers? --events? --no-data? registry role? > registry.role_frm.sql
導(dǎo)出多個(gè)庫中的所有表結(jié)構(gòu)
# mysqldump -u root -p"MySQL@123"? --single-transaction --routines? --triggers? --events? --no-data? --databases? A? B? > AB_frm.sql
三、參考
MySQL的全庫備份
http://www.reibang.com/p/bdda49562cf9
MySQL?中?localhost?127.0.0.1?區(qū)別
https://jin-yang.github.io/post/mysql-localhost-vs-127.0.0.1-introduce.html?
Linux在shell中日期格式化
https://blog.csdn.net/shanliangliuxing/article/details/16821175
https://stackoverflow.com/questions/1401482/yyyy-mm-dd-format-date-in-shell-script
MySQL 備份和恢復(fù)機(jī)制
https://juejin.im/entry/5a0aa2026fb9a045132a369f
常用MySQL圖形化管理工具
https://blog.csdn.net/weixin_34401479/article/details/85777674
基于mysqldump做備份恢復(fù)
https://jkzhao.github.io/2018/04/21/%E5%9F%BA%E4%BA%8Emysqldump%E5%81%9A%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D
MySQL存儲(chǔ)引擎對(duì)比
https://jkzhao.github.io/2018/04/08/MySQL%E5%AD%98%E5%82%A8%E5%BC%95%E6%93%8E%E5%AF%B9%E6%AF%94