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

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

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


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



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

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


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

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

這樣就把user表里面的數(shù)據(jù)全部導(dǎo)出來(lái)了,我們?cè)偃ビ胮ython或者go去寫(xiě)一些腳本進(jìn)行數(shù)據(jù)分析的時(shí)候,可以通過(guò)-t來(lái)作為來(lái)作為分隔符把每一個(gè)字段的數(shù)據(jù)都獲取出來(lái)做額外的數(shù)據(jù)分析,比如分析用戶的行為,建立用戶的畫(huà)像等等。
mysqldump數(shù)據(jù)備份命令總結(jié)
導(dǎo)出建庫(kù)建表的SQL:
//導(dǎo)出所有庫(kù) mysqldump -u 用戶名 -p --all-databases > ~/xxx.sql //一次可以導(dǎo)出多個(gè)庫(kù) mysqldump -u 用戶名 -p --databases db1[db2] > ~/xxx.sql //導(dǎo)出庫(kù)或者庫(kù)里面的某張表 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
通過(guò)備份的.sql,導(dǎo)入數(shù)據(jù),建庫(kù)建表
登錄mysql,在mysql的shell上執(zhí)行下面語(yǔ)句
source ~/school.sql
或者直接在linux的shell下執(zhí)行
cat ~/data.sql|mysql -u root -p
這樣就可以把我們之前備份的數(shù)據(jù)到mysql的庫(kù)表中
到此這篇關(guān)于mysqldump進(jìn)行數(shù)據(jù)備份詳解的文章就介紹到這了,更多相關(guān)mysqldump數(shù)據(jù)備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 導(dǎo)致mysqld無(wú)法啟動(dòng)的一個(gè)錯(cuò)誤問(wèn)題及解決
- MySQL使用mysqldump實(shí)現(xiàn)數(shù)據(jù)完全備份
- mysqldump?搭建復(fù)制報(bào)錯(cuò)原因解析
- mysql初始化命令mysqld?--initialize參數(shù)說(shuō)明小結(jié)
- MySQL啟動(dòng)失敗報(bào)錯(cuò):mysqld.service failed to run ‘start-pre‘ task的問(wèn)題分析與解決方案
- 使用mysqldump導(dǎo)出導(dǎo)入mysql表結(jié)構(gòu)或者數(shù)據(jù)
- mysqldump參數(shù)詳細(xì)說(shuō)明及用途
- docker安裝mysqld-exporter的實(shí)現(xiàn)
相關(guān)文章
MySQL數(shù)據(jù)類(lèi)型enum?枚舉類(lèi)型
這篇文章主要介紹了MySQL數(shù)據(jù)類(lèi)型enum?枚舉類(lèi)型,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06
解析在MySQL里創(chuàng)建外鍵時(shí)ERROR 1005的解決辦法
本篇文章是對(duì)在MySQL里創(chuàng)建外鍵時(shí)ERROR 1005的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
mysql判斷當(dāng)前時(shí)間是否在開(kāi)始與結(jié)束時(shí)間之間且開(kāi)始與結(jié)束時(shí)間允許為空
這篇文章主要介紹了mysql判斷當(dāng)前時(shí)間是否在開(kāi)始與結(jié)束時(shí)間之間且開(kāi)始與結(jié)束時(shí)間允許為空,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
解讀mysql主從配置及其原理分析(Master-Slave)
在windows下配置的,后面會(huì)在Linux下配置進(jìn)行測(cè)試,需要配置mysql數(shù)據(jù)庫(kù)同步的朋友可以參考下。2011-05-05
優(yōu)化MySQL數(shù)據(jù)庫(kù)中的查詢語(yǔ)句詳解
這篇文章主要介紹了優(yōu)化MySQL數(shù)據(jù)庫(kù)中的查詢語(yǔ)句,非常實(shí)用的經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2014-07-07
解決“無(wú)法啟動(dòng)mysql服務(wù) 錯(cuò)誤1069”的方法
本文給大家分享的是小編解決自己網(wǎng)站無(wú)法連接數(shù)據(jù)庫(kù)的時(shí)候遇到的“無(wú)法啟動(dòng)mysql服務(wù) 錯(cuò)誤1069”的方案,有相同需求的小伙伴可以參考下2017-08-08
SELECT INTO 和 INSERT INTO SELECT 兩種表復(fù)制語(yǔ)句簡(jiǎn)單介紹
Insert是T-sql中常用語(yǔ)句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應(yīng)用程序開(kāi)發(fā)中必不可少2012-11-11

