MySQL使用mysqldump備份資料庫

2019-10-16 22:55:47

在本教學中,您將學習如何使用mysqldump工具備份MySQL資料庫。

MySQL GUI工具(如phpMyAdmin,SQLyog等)通常為備份MySQL資料庫提供了方便的功能。 但是,如果您的資料庫很大,則備份過程可能非常慢,因為備份檔案需要通過網路傳輸到用戶端PC。因此,備份過程增加了MySQL資料庫伺服器的鎖定和可用時間。

MySQL提供了非常有用的工具,用於在伺服器上本地備份或轉儲MySQL資料庫。 備份檔案儲存在伺服器中的檔案系統中,因此您只需在需要時下載即可。

備份MySQL資料庫的工具是mysqldump。它位於MySQL安裝檔案夾的根/bin檔案夾中。如本教學安裝的位置為:D:\software\mysql-5.7.18-winx64\bin\mysqldump.exe

mysqldump是由MySQL提供的程式,可用於轉儲資料庫以備資料庫或將資料庫傳輸到另一個資料庫伺服器。

轉儲檔案包含一組用於建立資料庫物件的SQL語句。 此外,mysqldump可用於生成CSV,分隔符或XML檔案。 在本教學中,我們將僅關注如何使用mysqldump工具備份MySQL資料庫。

在本教學中,我們將僅關注如何使用mysqldump工具備份MySQL資料庫。

如何備份MySQL資料庫

要備份MySQL資料庫,資料庫首先必須存在於資料庫伺服器中,並且您也可以存取該伺服器。 如果沒有遠端桌面,可以使用SSHTelnet登入到遠端伺服器。備份MySQL資料庫的命令如下:

mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

上述命令的引數如下:

  • [username]:有效的MySQL使用者名。
  • [password]:使用者的有效密碼。 請注意,-p和密碼之間沒有空格。
  • [database_name]: 要備份的資料庫名稱
  • [dump_file.sql]: 要生成的轉儲檔案。

通過執行上述命令,所有資料庫結構和資料將匯出到一個[dump_file.sql]轉儲檔案中。 例如,要備份範例資料庫yiibaidb,可使用以下命令:

mysqldump -u root –p123456  yiibaidb > D:\worksp\bakup\yiibaidb001.sql

執行上面語句,如下所示 -

C:\Users\Administrator> mysqldump -u root -p123456  yiibaidb > D:\worksp\bakup\yiibaidb001.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

C:\Users\Administrator>

執行後,將建立一個檔案:D:\worksp\bakup\yiibaidb001.sql

如何僅備份MySQL資料庫結構

如果只想備份資料庫結構而不需要備份資料,那麼只需要新增一個選項-no-data來告訴mysqldump只需要匯出資料庫結構,如下:

mysqldump -u [username] –p[password] –no-data [database_name] > [dump_file.sql]

例如,僅使用結構來備份範例資料庫,可以使用以下命令:

C:\Users\Administrator> mysqldump -u root –p123456  -no-data yiibaidb > D:\worksp\bakup\backup002.sql

如何僅備份MySQL資料庫資料

有一種情況,您希望在分段和開發系統中重新整理資料,因此這些系統中的資料與生產系統相同。

在這種情況下,只需要從生產系統匯出資料,並將其匯入到臨時或開發系統中。要實現只備份資料,您可以使用mysqldump的選項-no-create-info,如下所示:

mysqldump -u [username] –p[password] –no-create-info [database_name] > [dump_file.sql]

例如,要僅使用資料來備份範例資料庫(yiibaidb),請使用以下命令:

mysqldump –u root –p123456 –no-create-info yiibaidb > D:\worksp\bakup\backup003.sql

如何將多個MySQL資料庫備份到一個檔案中

如果要通過[database_name]中的命令來備份多個資料庫,只需單獨的資料庫名稱即可。 如果要備份資料庫伺服器中的所有資料庫,請使用選項-all-database

mysqldump -u [username] –p[password]  [dbname1,dbname2,…] > [all_dbs_dump_file.sql]

mysqldump -u [username] –p[password] –all-database > [all_dbs_dump_file.sql]

在本教學中,您已經學習了如何使用mysqldump工具來備份具有多種選項的MySQL資料庫。