mysqldump進(jìn)行數(shù)據(jù)備份詳解
前言:
用mysqlbinlog工具(mysql原生自帶的工具)介意快速解析大量的binlog日志文件,并使用二進(jìn)制日志進(jìn)行數(shù)據(jù)恢復(fù)的應(yīng)用實踐,這篇博客我們講一下數(shù)據(jù)備份先關(guān)的命令,因為我們做后臺開發(fā)一般工作在shell下,而且部署在后臺服務(wù)器或者是云端的mysql,大部分做了一些限制,我們可能在本地?zé)o法直連到后臺服務(wù)的數(shù)據(jù)庫3306端口上,一般都會有防火墻之類的網(wǎng)絡(luò)的中間鍵,沒有條件用GUI(圖形界面工具)鼠標(biāo)操作做數(shù)據(jù)備份之類的,只能通過命令,而且命令也是最快速的,所以這篇博客講一下常用的數(shù)據(jù)備份,我們一般通過mysqldump進(jìn)行。

在linux shell下執(zhí)行以下命令,即可把mytest庫的user表的數(shù)據(jù)導(dǎo)出到.sql文件中(導(dǎo)出的不僅是數(shù)據(jù),SQL語句也導(dǎo)出了)

vim user.sql查看user.sql文件內(nèi)容如下:


現(xiàn)在mytest庫里面,我們把表刪了,或者是我們向進(jìn)行數(shù)據(jù)遷移,在另一個庫上重建這個表。我們有了這個sql腳本在root根目錄下放著,權(quán)限不夠,要在普通用戶下執(zhí)行,所以把user.sql移到普通用戶下(或者我們可以一開始就在普通用戶下執(zhí)行mysqldump -u root -p mytest user > ~/user.sql把mytest庫的user表的數(shù)據(jù)導(dǎo)出到.sql文件中,就不用執(zhí)行接下來的步驟,直接執(zhí)行source /home/admin/user.sql,就可以恢復(fù)出user表和數(shù)據(jù))



現(xiàn)在user.sql是root的文件,我們變更一下屬主,使得普通用戶也可以操作

然后我們source,相當(dāng)于把.sql腳本重新執(zhí)行一遍


user表和數(shù)據(jù)全部恢復(fù)出來了,有了.sql的腳本,可以在任意的mysql庫上去重建庫表及數(shù)據(jù)
我們還可以直接導(dǎo)出純表數(shù)據(jù):

user.txt內(nèi)容如下:

這樣就把user表里面的數(shù)據(jù)全部導(dǎo)出來了,我們再去用python或者go去寫一些腳本進(jìn)行數(shù)據(jù)分析的時候,可以通過-t來作為來作為分隔符把每一個字段的數(shù)據(jù)都獲取出來做額外的數(shù)據(jù)分析,比如分析用戶的行為,建立用戶的畫像等等。
mysqldump數(shù)據(jù)備份命令總結(jié)
導(dǎo)出建庫建表的SQL:
//導(dǎo)出所有庫 mysqldump -u 用戶名 -p --all-databases > ~/xxx.sql //一次可以導(dǎo)出多個庫 mysqldump -u 用戶名 -p --databases db1[db2] > ~/xxx.sql //導(dǎo)出庫或者庫里面的某張表 mysqldump -u 用戶名 -p dbname [tablename]> ~/xxx.sql
導(dǎo)出純數(shù)據(jù):
mysql -u 用戶名 -p -D school -e 'select * from user where age>10' > ~/user.txt
通過備份的.sql,導(dǎo)入數(shù)據(jù),建庫建表
登錄mysql,在mysql的shell上執(zhí)行下面語句
source ~/school.sql
或者直接在linux的shell下執(zhí)行
cat ~/data.sql|mysql -u root -p
這樣就可以把我們之前備份的數(shù)據(jù)到mysql的庫表中
到此這篇關(guān)于mysqldump進(jìn)行數(shù)據(jù)備份詳解的文章就介紹到這了,更多相關(guān)mysqldump數(shù)據(jù)備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS7環(huán)境下MySQL8常用命令小結(jié)
在進(jìn)行MySQL的優(yōu)化之前必須要了解的就是MySQL的查詢過程,下面這篇文章主要給大家介紹了關(guān)于CentOS7環(huán)境下MySQL8常用命令的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
MySQL慢查詢?nèi)罩?Slow Query Log)的實現(xiàn)
慢查詢?nèi)罩居脕碛涗浽?nbsp;MySQL 中執(zhí)行時間超過指定時間的查詢語句,本文就來介紹一下MySQL慢查詢?nèi)罩?nbsp;的使用,感興趣的可以了解一下2024-08-08
MySQL數(shù)據(jù)定義語言DDL的基礎(chǔ)語句
這篇文章主要介紹了MySQL數(shù)據(jù)定義語言DDL的基礎(chǔ)語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

