MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法
Database Backup and Shiftwith Mysql DB with CopyFile
建議在實(shí)施備份或文件轉(zhuǎn)移前進(jìn)行測(cè)試,在測(cè)試穩(wěn)定之前,要保證數(shù)據(jù)備份的可恢復(fù)性。
下面就MySQL數(shù)據(jù)庫(kù)表文件通過拷貝進(jìn)行備份的情況做測(cè)試說明:
1、 MySQL數(shù)據(jù)庫(kù)默認(rèn)數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)目錄下的備份(實(shí)例MySQL默認(rèn)目錄為/var/lib/mysql/ ).

Fig.1-1 示例數(shù)據(jù)庫(kù)所屬文件夾
a.先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)test,可見在數(shù)據(jù)庫(kù)默認(rèn)目錄下面建立了一個(gè)名為test的文件夾,為了模擬實(shí)際數(shù)據(jù)情況,我們?cè)賱?chuàng)建一張表test;

Fig.1-2 示例數(shù)據(jù)庫(kù)test里面的文件
b. 拷貝test文件夾在當(dāng)前目錄建立test_backup文件夾。

Fig.1-3可恢復(fù)數(shù)據(jù)庫(kù)test_backup所屬文件夾
c. 切換到test_backup數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)可操作情況進(jìn)行查看。

Fig.1-4 拷貝的test_backup數(shù)據(jù)庫(kù)文件權(quán)限問題
d.test_bakup數(shù)據(jù)庫(kù)的權(quán)限存在問題,所以我們參照原數(shù)據(jù)庫(kù)test的權(quán)限對(duì)test_backup進(jìn)行修改,修改操作參見圖Fig.1-5。

Fig.1-5權(quán)限修改與比對(duì)
權(quán)限修修改還應(yīng)該包括用戶和用戶組,圖Fig.1-6對(duì)修改用戶組操作與結(jié)果做了顯示。

Fig.1-6 用戶組修改
e.修改結(jié)果,F(xiàn)ig.1-7顯示test_backup數(shù)據(jù)庫(kù)原來(lái)顯示表的問題已經(jīng)得到解決.

Fig.1-7 test_backup數(shù)據(jù)庫(kù)列表
f.圖Fig.1-8為我們呈現(xiàn)了數(shù)據(jù)庫(kù)的插入新表的操作與結(jié)果,顯示一切正常表明數(shù)據(jù)庫(kù)文件在默認(rèn)目錄完成可恢復(fù)備份的建立。

Fig.1-8備份數(shù)據(jù)庫(kù)test_backup建表
2、其他目錄下創(chuàng)建轉(zhuǎn)移數(shù)據(jù)庫(kù)或備份數(shù)據(jù)庫(kù) ( 其他目錄路徑實(shí)例:/home/mysqldata/mysql/)
a.拷貝test數(shù)據(jù)庫(kù)整個(gè)文件夾數(shù)據(jù)到/home/mysqldata/mysql/目錄下

Fig.2-1 /home/mysqldata/mysql/目錄下文件
b.參照第一步的建立備份的權(quán)限以及用戶組修改流程進(jìn)行操作,然后在默認(rèn)數(shù)據(jù)庫(kù)存放目錄建立軟連接test_out_copy。

Fig.2-2 test_out_copy數(shù)據(jù)庫(kù)的建立
c.在數(shù)據(jù)庫(kù)中可見test_out_copy數(shù)據(jù)庫(kù)存在,show tables; 列表顯示失敗。

Fig.2-3 test_out_copy數(shù)據(jù)庫(kù)測(cè)試結(jié)果
測(cè)試結(jié)論:當(dāng)前測(cè)試結(jié)果顯示,目前MySQL配置下對(duì) MySQL默認(rèn)文件夾里數(shù)據(jù)庫(kù)拷貝可以通過權(quán)限設(shè)置修改為正??捎脭?shù)據(jù)庫(kù)。但是,拷貝其他路徑的數(shù)據(jù)庫(kù)文件無(wú)論如權(quán)限設(shè)置何修改,都不用,即便在mv到默認(rèn)目錄也恢復(fù)不出可用數(shù)據(jù)庫(kù)。

Fig.2-4 mv數(shù)據(jù)庫(kù)test文件夾數(shù)據(jù)到其他目錄建立可用數(shù)據(jù)庫(kù)
d.數(shù)據(jù)庫(kù)數(shù)據(jù)過大的轉(zhuǎn)移直接mv目標(biāo)數(shù)據(jù)庫(kù)test到目錄/home/mysqldata/mysql/,然后通過建立軟連接的方式,在默認(rèn)數(shù)據(jù)庫(kù)下面建立起test_out_move的數(shù)據(jù)庫(kù),操作過程與測(cè)試結(jié)果見圖Fig.2-4 。
可行性結(jié)論:mv數(shù)據(jù)庫(kù)中數(shù)據(jù)到其他目錄,再創(chuàng)建軟連接能夠有效地解決MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)存放目錄問題有效方法。
3、MySQL數(shù)據(jù)庫(kù)表的附加
鑒于MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)可能為整庫(kù)下載下來(lái),數(shù)據(jù)較大可能存在放不到默認(rèn)目錄的情況,可以通過把表數(shù)據(jù)直接copy到建好軟鏈接的目標(biāo)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入。
a. 建立空數(shù)據(jù)庫(kù)通attach過mv的方法轉(zhuǎn)移到目標(biāo)位置,建立新的數(shù)據(jù)庫(kù),如圖Fig.3-1。

Fig.3-1 空數(shù)據(jù)庫(kù)attach軟連接建立與mv
b. 對(duì)空數(shù)據(jù)庫(kù)測(cè)試,圖Fig.3-2顯示通過軟鏈接建立attach數(shù)據(jù)庫(kù)可讀可寫,表明attach數(shù)據(jù)庫(kù)文件權(quán)限沒有問題

Fig.3-2 attach數(shù)據(jù)庫(kù)讀寫情況測(cè)試
c. 導(dǎo)入表的結(jié)構(gòu)數(shù)據(jù),并修改相應(yīng)權(quán)限與原來(lái)的表相同,圖Fig.3-3顯示的是表文件權(quán)限與所屬用戶不同的情況。

Fig.3-3 導(dǎo)入外源表文件后attach數(shù)據(jù)庫(kù)的文件情況
4、MySQL數(shù)據(jù)庫(kù)外的數(shù)據(jù)目錄備份與轉(zhuǎn)移
a.數(shù)據(jù)庫(kù)copy測(cè)試選取mm10進(jìn)行測(cè)試,目標(biāo)建立起一個(gè)out_to_out的數(shù)據(jù)庫(kù)備份。數(shù)據(jù)測(cè)試數(shù)據(jù)庫(kù)在默認(rèn)目錄外不同路徑的拷貝與權(quán)限設(shè)置見圖Fig.4-1;軟連接建立out_to_out數(shù)據(jù)庫(kù)見下圖Fig.4-2。

Fig.4-1 mm10測(cè)試數(shù)據(jù)庫(kù)在默認(rèn)目錄外不同路徑的拷貝與權(quán)限設(shè)置

Fig.4-2 軟連接建立的數(shù)據(jù)庫(kù)
b.out_to_out數(shù)據(jù)庫(kù)可用性進(jìn)行測(cè)試,結(jié)果如圖Fig.4-3,顯示與從默認(rèn)目錄拷出一樣的錯(cuò)誤。

Fig.4-3out_to_out數(shù)據(jù)庫(kù)測(cè)試結(jié)果
c.通過先建立out_to_out數(shù)據(jù)庫(kù)對(duì)應(yīng)的空數(shù)據(jù)庫(kù), mv空數(shù)據(jù)庫(kù)out_to_out到目標(biāo)路徑,再將目標(biāo)數(shù)據(jù)庫(kù)表的數(shù)據(jù)拷貝到該空數(shù)據(jù)庫(kù),查詢測(cè)試目標(biāo)數(shù)據(jù)庫(kù)結(jié)果如下圖Fig.4-4。

Fig.4-4 目標(biāo)數(shù)據(jù)庫(kù)測(cè)試查詢結(jié)果
注:以上測(cè)試實(shí)現(xiàn)環(huán)境為CentOS release 6.5,MySQL版本為5.1.73。
相關(guān)文章
Java利用Spire.Doc for Java實(shí)現(xiàn)在Word文檔中插入圖片
本文將深入探討如何利用 Spire.Doc for Java 這一強(qiáng)大庫(kù),在 Java 程序中高效、靈活地實(shí)現(xiàn) Word 文檔的圖片插入功能,包括不同環(huán)繞方式和指定位置的插入,有需要的小伙伴可以了解下2025-10-10
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(16)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧,希望可以幫到你2021-07-07
使用Spring Cache和Redis實(shí)現(xiàn)查詢數(shù)據(jù)緩存
在現(xiàn)代應(yīng)用程序中,查詢緩存的使用已經(jīng)變得越來(lái)越普遍,它不僅能夠顯著提高系統(tǒng)的性能,還能提升用戶體驗(yàn),在這篇文章中,我們將探討緩存的基本概念、重要性以及如何使用Spring Cache和Redis實(shí)現(xiàn)查詢數(shù)據(jù)緩存,需要的朋友可以參考下2024-07-07
JAVA?從完整的文件路徑中分別截取文件名和文件路徑的實(shí)現(xiàn)
在Java編程中,經(jīng)常會(huì)遇到需要截取文件名的場(chǎng)景,本文主要介紹了JAVA?從完整的文件路徑中分別截取文件名和文件路徑的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
詳解Java如何在Array和List之間進(jìn)行轉(zhuǎn)換
這篇文章主要為大家介紹了詳解Java如何在Array和List之間進(jìn)行轉(zhuǎn)換的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Java利用docx4j+Freemarker生成word文檔
這篇文章主要為大家詳細(xì)介紹了Java如何利用docx4j+Freemarker生成word文檔,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
java正則表達(dá)式之Pattern與Matcher類詳解
這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式之Pattern與Matcher類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Spring Data JPA 實(shí)現(xiàn)多表關(guān)聯(lián)查詢的示例代碼
多表查詢?cè)趕pring data jpa中有兩種實(shí)現(xiàn)方式,第一種是利用hibernate的級(jí)聯(lián)查詢來(lái)實(shí)現(xiàn),第二種是創(chuàng)建一個(gè)結(jié)果集的接口來(lái)接收連表查詢后的結(jié)果,這里介紹第二種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-07-07

