使用 mysqldump 進行 MySQL 資料庫備份

更新於 發佈於 閱讀時間約 4 分鐘

「如果資料庫出問題,能不能快速恢復?」

這或許是許多工程師在面對資料庫維運時心中的疑問。就我而言,遇到伺服器故障或有人誤刪資料表時,最慶幸的就是事先做好備份。這次要分享的是 MySQL 中常用的備份指令 mysqldump,讓大家能在需要時把握關鍵的「救命繩」。

為什麼需要備份?

在商業專案或個人開發中,資料往往是系統的核心。如果發生誤刪或遭遇災難性故障(如硬碟損毀),良好的備份機制能大幅降低損失。同時,定期備份也能讓我們在測試新功能時,有「可回溯」的版本做復原測試。

基本指令:mysqldump

MySQL 官方提供的 mysqldump 是最常用的備份工具,可快速將資料匯出成 SQL 檔案。以下是基本語法:

$ mysqldump -u [username] -p[password] [database_name] > [backup_file.sql]
  • [username]:MySQL 使用者名稱
  • [password]:MySQL 密碼,貼心提醒可以用 -p 後再輸入密碼,但有些場景許可時,也可直接緊貼在命令後
  • [database_name]:要備份的資料庫
  • [backup_file.sql]:備份檔案名稱(建議用日期、版本等資訊來清楚標識)


範例

假設想備份名稱為 mydb 的資料庫,使用者為 root,密碼為 password,並將備份檔命名為 mydb_backup.sql,指令可參考如下:

$ mysqldump -u root -ppassword mydb > mydb_backup.sql

這樣做就能將 mydb 的所有結構與資料輸出到 mydb_backup.sql,下次若需要還原,只需在 MySQL 端執行 source mydb_backup.sql 或其他相應還原指令即可。

備份多個或所有資料庫

如果你想一次備份多個資料庫,可以在指令裡面依序列出資料庫名稱;若要備份所有資料庫,則直接省略 [database_name] 並使用 --all-databases 參數。例如:

$ mysqldump -u root -ppassword --all-databases > all_db_backup.sql

這會將伺服器上所有的資料庫匯出到一個 SQL 檔,適合在整台伺服器做大規模維護或遷移時使用。但要注意備份檔可能變得非常大,建議配合壓縮工具或設定定期自動備份機制。

小結

  • 定期備份:不論是每天或每週,視專案需求設定自動化備份
  • 檔案命名:建議在檔名中加上日期或版本,以清楚辨別
  • 測試還原:除了備份,也要偶爾做還原測試,才能確保備份有效
  • 安全性:若密碼直接放在指令裡,務必留意指令歷史紀錄的安全問題

在資安與維運領域裡,備份絕對是每個工程師的「生存必備」。做得早、做得勤,才不會在關鍵時刻束手無策。希望這篇關於 MySQL 備份指令的分享,能幫你在面對資料庫風險時更有底氣,也讓你和你的專案都能更安心地持續前進!

這是一系列以軟體開發為主題的輕鬆分享,內容涵蓋了技術選擇、開發經驗、實戰應用等多方面的議題。無論是如何在眾多框架中做出選擇,還是如何應對技術轉移的挑戰,這裡有幽默、有趣的對話風格,將複雜的技術問題轉化為易懂的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇文章反映了平台改版後使用者面臨的多項問題,包括文章編輯功能異常、分類顯示異常及最新內容資料呈現問題。本人從個人經驗出發,詳細描述了這些問題的具體情況,期望官方重視使用者反饋,以改善平台使用體驗。
2024年7月19日…,一場前所未有的全球性大事件悄然降臨。這次事件波及了機場、車站,以及無數依賴關鍵系統的商店與公司。聽起來像是科幻小說中的場景,然而,這真真切切地發生在昨天。世界各地的運營陷入混亂,人們的生活被突如其來的技術故障打亂。 這一切都要從一間公司開始說起——CrowdStrike
為什麼供應商在使用我們的API時,統一編號驗證會出錯?這個看似簡單的錯誤,竟然牽涉到財政部的新規則。我們如何發現並解決這個問題?新的檢查邏輯是如何影響我們的系統?本文將揭示背後的原因和解決過程。
討論系統架構時,我們常忽略低流量時期的準備,但真正的挑戰在於怎樣在突發高流量時保持穩定。我們深入探討了如何透過水平擴展、負載均衡、快取策略等多維度規劃,來強化系統對高流量的承受力,確保系統的靈活擴展與高可用性。
在連假期間,我探索了「知識詛咒」這個話題,揭露了專家在分享知識時常見的盲點。提出了三大觀點來應對:情境導入,讓知識有著落;探討不同情境下可能的結果,展現靈活思考;並且至少提供兩種例證,增強說服力。這篇分享不僅是自我反思的成果,也希望能給大家在溝通和知識分享上一些新的啟示。
這篇文章反映了平台改版後使用者面臨的多項問題,包括文章編輯功能異常、分類顯示異常及最新內容資料呈現問題。本人從個人經驗出發,詳細描述了這些問題的具體情況,期望官方重視使用者反饋,以改善平台使用體驗。
2024年7月19日…,一場前所未有的全球性大事件悄然降臨。這次事件波及了機場、車站,以及無數依賴關鍵系統的商店與公司。聽起來像是科幻小說中的場景,然而,這真真切切地發生在昨天。世界各地的運營陷入混亂,人們的生活被突如其來的技術故障打亂。 這一切都要從一間公司開始說起——CrowdStrike
為什麼供應商在使用我們的API時,統一編號驗證會出錯?這個看似簡單的錯誤,竟然牽涉到財政部的新規則。我們如何發現並解決這個問題?新的檢查邏輯是如何影響我們的系統?本文將揭示背後的原因和解決過程。
討論系統架構時,我們常忽略低流量時期的準備,但真正的挑戰在於怎樣在突發高流量時保持穩定。我們深入探討了如何透過水平擴展、負載均衡、快取策略等多維度規劃,來強化系統對高流量的承受力,確保系統的靈活擴展與高可用性。
在連假期間,我探索了「知識詛咒」這個話題,揭露了專家在分享知識時常見的盲點。提出了三大觀點來應對:情境導入,讓知識有著落;探討不同情境下可能的結果,展現靈活思考;並且至少提供兩種例證,增強說服力。這篇分享不僅是自我反思的成果,也希望能給大家在溝通和知識分享上一些新的啟示。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
如果MySQL忘記密碼,可以使用修改cnf檔案免去登入驗證,再進入MySQL重新設定密碼的方式,找回密碼,另外還附上有一般修改密碼的方式。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
登入資料庫方式,請執行以下的命令: sudo mysql -u root -p 建立一個新資料庫,我們建立“itslinuxfoss”資料庫為例: CREATE DATABASE itslinuxfoss; 為新建立的資料庫設定新的使用者名稱和密碼: GRANT ALL PRIVILEGE
※ MySQL是什麼? MySQL是一種開源(免費)的關聯式資料庫管理系統,所以任何人都可以免費使用,是Web開發中最常用的資料庫之一。MySQL 會將資料儲存在由資料列與資料欄組成的資料表中。使用者可使用結構化查詢語言 (通常稱為 SQL) 來定義、操控、控管及查詢資料。  簡單來說,資料
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
如果MySQL忘記密碼,可以使用修改cnf檔案免去登入驗證,再進入MySQL重新設定密碼的方式,找回密碼,另外還附上有一般修改密碼的方式。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
登入資料庫方式,請執行以下的命令: sudo mysql -u root -p 建立一個新資料庫,我們建立“itslinuxfoss”資料庫為例: CREATE DATABASE itslinuxfoss; 為新建立的資料庫設定新的使用者名稱和密碼: GRANT ALL PRIVILEGE
※ MySQL是什麼? MySQL是一種開源(免費)的關聯式資料庫管理系統,所以任何人都可以免費使用,是Web開發中最常用的資料庫之一。MySQL 會將資料儲存在由資料列與資料欄組成的資料表中。使用者可使用結構化查詢語言 (通常稱為 SQL) 來定義、操控、控管及查詢資料。  簡單來說,資料
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載