溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用mysqldump怎么備份MySQL數(shù)據(jù)庫

發(fā)布時間:2021-07-24 16:37:46 來源:億速云 閱讀:161 作者:Leah 欄目:數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)使用mysqldump怎么備份MySQL數(shù)據(jù)庫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

  一、數(shù)據(jù)備份的重要性

  工作中,如果意外刪除了重要的文件或者目錄的話,那結(jié)果可就慘了。尤其是當誤刪除的數(shù)據(jù)涉及重要的客戶或者關(guān)鍵項目,并且這些數(shù)據(jù)無法輕易重新創(chuàng)建的時候,那滋味,不用我說你也能想象得到。不巧的是,像這樣的數(shù)據(jù)在公司環(huán)境中隨處可見,例如銷售記錄、客戶聯(lián)系方式,等等。

  所以,在現(xiàn)實工作中,定期備份數(shù)據(jù)庫是一項極為最需關(guān)注的事的事情,否則就可能帶來災(zāi)難性的后果。當我們使用MySQL時,在數(shù)據(jù)庫備份方面有許多選擇的余地。該篇文章將向讀者介紹如何使用MySQL的mysqldump來備份數(shù)據(jù)庫。

  二、關(guān)于mysqldump

  MySQL自身提供了許多命令行工具,例如mysql工具可以用來與MySQL的數(shù)據(jù)庫模式、數(shù)據(jù)、用戶和配置變量進行交互,而mysqladmin工具則可以進行各種管理任務(wù),還有就是下面將要介紹的mysqldump。此外還有很多,不過那超出了該篇文章上海同志的討論范圍。工具mysqldump既可以用來備份數(shù)據(jù)庫模式,還可以用來備份數(shù)據(jù);利用它,我們不僅可以對一個服務(wù)器上的所有數(shù)據(jù)庫進行地毯式的備份,同時我們還可以選擇性地備份某個數(shù)據(jù)庫,甚至數(shù)據(jù)庫中指定的某些表。

  當在服務(wù)器上安裝MySQL的時候,應(yīng)修改系統(tǒng)路徑以便使全局命令行可以訪問各個客戶程序。打開終端窗口,并執(zhí)行下列命令:

  %>mysqldumpUsage:mysqldump[OPTIONS]database[tables]ORmysqldump[OPTIONS]

  databases[OPTIONS]DB1[DB2DB3...]ORmysqldump[OPTIONS]all-databases[OPTIONS]

  Formoreoptions,usemysqldumphelp

  這里給出了使用mysqldump程序的方法。舉例來說,若要備份所有數(shù)據(jù)庫模式和數(shù)據(jù)至文件backup092210.sql的話,可以執(zhí)行如下所示的命令:

  %>mysqldump-uroot-pall-databases>backup092210.sqlEnterpassword:

  這里,為了能夠訪問所有數(shù)據(jù)庫,我們需要一個root權(quán)限,所以這里需要在提示符后面輸入相應(yīng)口令。此外,如果你是在開發(fā)用的服務(wù)器上練習這些命令的話,不妨花一些時間看看備份文件的內(nèi)容。這時您會看到一系列的SQL語句,先是刪除各個表后重新創(chuàng)建的語句,然后是重新創(chuàng)建相關(guān)數(shù)據(jù)的語句。另外,由于上面的例子中我們對所有數(shù)據(jù)庫進行備份,所以您還會發(fā)現(xiàn),備份文件將創(chuàng)建每個數(shù)據(jù)庫(如果它還沒有存在的話),然后通過USE命令切換到該數(shù)據(jù)庫,進而創(chuàng)建與該數(shù)據(jù)庫相關(guān)的表跟數(shù)據(jù)。

  若要備份單個數(shù)據(jù)庫,例如要備份名為wiki的數(shù)據(jù)庫到一個名為wiki-backup092210.sql的文件中,我們可以使用如下所示的命令:

  %>mysqldump-uroot-pwiki>wiki-backup092210.sqlEnterpassword:

  最后,若要備份數(shù)據(jù)庫中名為users的表的話,例如要把它備份到名為wikiusers-backup092210.sql的文件中,我們可以使用如下所示的命令:

  %>mysqldump-uroot-pwikiusers>wikiusers-backup092210.sqlEnterpassword:

  如何利用mysqldump備份MySQL數(shù)據(jù)庫

  三、調(diào)整備份內(nèi)容

  有時候,我們可能只想備份數(shù)據(jù)庫的模式,或者只想備份數(shù)據(jù)庫的數(shù)據(jù)。為了備份數(shù)據(jù)庫模式,可以向mysqldump傳遞參數(shù)no-data,如下所示:

  %>mysqldump-uroot-pno-datawiki>wiki-backup092210.sql

  為了只備份數(shù)據(jù)庫的數(shù)據(jù),可以向mysqldump使用參數(shù)no-create-info,如下所示:

  %>mysqldump-uroot-pno-create-infowiki>wiki-backup092210.sql

  四、如何自動進行備份

  對于前面所舉的例子,僅需要少量的擊鍵次數(shù)就能執(zhí)行mysqldump命令。然而,工作中要干的活還有很多,并且如果老是執(zhí)行這些命令的話,那么生活就會變得太單調(diào)了。因此,我們可以設(shè)法使這些過程自動化,這時我們可以借助cron工具來達成我們的目標,這個工具在所有類UNIX操作系統(tǒng)上都能找到。為了自動執(zhí)行備份任務(wù),我們需要新建一個正確命名的文件。例如nightly-backup.sh,具體命令如下所示:

  #!/bin/shmysqldump-uroot-psecretwiki>/home/backup/sql/wiki-backup-`date+%m%d%Y`.sql

  當我們執(zhí)行這個腳本的時候,它會將wiki數(shù)據(jù)庫備份到一個按照備份時間命名的文件中*,如wiki-backup-092210.sql。您需要注意一下這里的用戶名root和口令secret是如何傳遞給mysqldump的,即將它們分別放到選項-u和-p后面。從安全的角度講,我們必須進行正確的權(quán)限設(shè)置。

  接下來,我們將這個腳本提供交給cron,方法是使用crontab。為此,我們可以執(zhí)行如下所示的命令:

  這將打開當前登錄用戶的crontab文件,如果該文件不存在的話maxman就會自動新建一個。在這個文件中,我們可以添加如下內(nèi)容,來確保每天上午3時運行該備份腳本:

  03***/home/backup/scripts/nightly-backup.sh

  如果您對crontab的語法很陌生的話,這里的參數(shù)可能讓您摸不著頭腦。這里前五個參數(shù)分別對應(yīng)于執(zhí)行腳本的時間,依次為分、時、日、月和星期幾。因此,要想在每星期二的4:45am執(zhí)行腳本的話,可以使用參數(shù)454**3。

  插入上面所示的一行內(nèi)容后,保存文件,那么我們的任務(wù)就會開始按照給定時間調(diào)度執(zhí)行。需要注意的是,第二天早上一定要查看相應(yīng)的目錄,看看事情是否一切正常。

  五、其它備份方案

  就像該篇文章前面所說的那樣,mysqldump只是MySQL眾多備份方案中的一個。此外,您還可以使用MySQL的二進制日志文件進行增量備份,或者使用從MySQL主服務(wù)器中將數(shù)據(jù)復(fù)制到從服務(wù)器中。

看完上述內(nèi)容,你們對使用mysqldump怎么備份MySQL數(shù)據(jù)庫有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI