mysqldump進行數(shù)據(jù)備份詳解
前言:
用mysqlbinlog工具(mysql原生自帶的工具)介意快速解析大量的binlog日志文件,并使用二進制日志進行數(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進行。
在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庫里面,我們把表刪了,或者是我們向進行數(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去寫一些腳本進行數(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進行數(shù)據(jù)備份詳解的文章就介紹到這了,更多相關(guān)mysqldump數(shù)據(jù)備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 導(dǎo)致mysqld無法啟動的一個錯誤問題及解決
- MySQL使用mysqldump實現(xiàn)數(shù)據(jù)完全備份
- mysqldump?搭建復(fù)制報錯原因解析
- mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié)
- MySQL啟動失敗報錯:mysqld.service failed to run ‘start-pre‘ task的問題分析與解決方案
- 使用mysqldump導(dǎo)出導(dǎo)入mysql表結(jié)構(gòu)或者數(shù)據(jù)
- mysqldump參數(shù)詳細說明及用途
- docker安裝mysqld-exporter的實現(xiàn)
相關(guān)文章
解析在MySQL里創(chuàng)建外鍵時ERROR 1005的解決辦法
本篇文章是對在MySQL里創(chuàng)建外鍵時ERROR 1005的解決辦法進行了詳細的分析介紹,需要的朋友參考下2013-06-06mysql判斷當(dāng)前時間是否在開始與結(jié)束時間之間且開始與結(jié)束時間允許為空
這篇文章主要介紹了mysql判斷當(dāng)前時間是否在開始與結(jié)束時間之間且開始與結(jié)束時間允許為空,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09解讀mysql主從配置及其原理分析(Master-Slave)
在windows下配置的,后面會在Linux下配置進行測試,需要配置mysql數(shù)據(jù)庫同步的朋友可以參考下。2011-05-05優(yōu)化MySQL數(shù)據(jù)庫中的查詢語句詳解
這篇文章主要介紹了優(yōu)化MySQL數(shù)據(jù)庫中的查詢語句,非常實用的經(jīng)驗總結(jié),需要的朋友可以參考下2014-07-07SELECT INTO 和 INSERT INTO SELECT 兩種表復(fù)制語句簡單介紹
Insert是T-sql中常用語句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應(yīng)用程序開發(fā)中必不可少2012-11-11