首頁 > 軟體

mysqldump進行資料備份詳解

2022-07-14 22:01:58

前言:

mysqlbinlog工具(mysql原生自帶的工具)介意快速解析大量的binlog紀錄檔檔案,並使用二進位制紀錄檔進行資料恢復的應用實踐,這篇部落格我們講一下資料備份先關的命令,因為我們做後臺開發一般工作在shell下,而且部署在後臺伺服器或者是雲端的mysql,大部分做了一些限制,我們可能在本地無法直連到後臺服務的資料庫3306埠上,一般都會有防火牆之類的網路的中間鍵,沒有條件用GUI(圖形介面工具)滑鼠操作做資料備份之類的,只能通過命令,而且命令也是最快速的,所以這篇部落格講一下常用的資料備份,我們一般通過mysqldump進行。

在linux shell下執行以下命令,即可把mytest庫的user表的資料匯出到.sql檔案中(匯出的不僅是資料,SQL語句也匯出了)

vim user.sql檢視user.sql檔案內容如下:

現在mytest庫裡面,我們把表刪了,或者是我們向進行資料遷移,在另一個庫上重建這個表。我們有了這個sql指令碼在root根目錄下放著,許可權不夠,要在普通使用者下執行,所以把user.sql移到普通使用者下(或者我們可以一開始就在普通使用者下執行mysqldump -u root -p mytest user > ~/user.sql把mytest庫的user表的資料匯出到.sql檔案中,就不用執行接下來的步驟,直接執行source /home/admin/user.sql,就可以恢復出user表和資料)

現在user.sql是root的檔案,我們變更一下屬主,使得普通使用者也可以操作

然後我們source,相當於把.sql指令碼重新執行一遍

user表和資料全部恢復出來了,有了.sql的指令碼,可以在任意的mysql庫上去重建庫表及資料

我們還可以直接匯出純表資料:

user.txt內容如下:

這樣就把user表裡面的資料全部匯出來了,我們再去用python或者go去寫一些指令碼進行資料分析的時候,可以通過-t來作為來作為分隔符把每一個欄位的資料都獲取出來做額外的資料分析,比如分析使用者的行為,建立使用者的畫像等等。

mysqldump資料備份命令總結

匯出建庫建表的SQL:

//匯出所有庫
mysqldump -u 使用者名稱 -p --all-databases > ~/xxx.sql
//一次可以匯出多個庫
mysqldump -u 使用者名稱 -p --databases db1[db2] > ~/xxx.sql
//匯出庫或者庫裡面的某張表
mysqldump -u 使用者名稱 -p dbname [tablename]> ~/xxx.sql

匯出純資料:

mysql -u 使用者名稱 -p -D school -e 'select * from user where age>10' > ~/user.txt

通過備份的.sql,匯入資料,建庫建表

登入mysql,在mysql的shell上執行下面語句

source ~/school.sql

或者直接在linux的shell下執行

cat ~/data.sql|mysql -u root -p

這樣就可以把我們之前備份的資料到mysql的庫表中

到此這篇關於mysqldump進行資料備份詳解的文章就介紹到這了,更多相關mysqldump資料備份內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com