「如果資料庫出問題,能不能快速恢復?」
這或許是許多工程師在面對資料庫維運時心中的疑問。就我而言,遇到伺服器故障或有人誤刪資料表時,最慶幸的就是事先做好備份。這次要分享的是 MySQL 中常用的備份指令 mysqldump,讓大家能在需要時把握關鍵的「救命繩」。
在商業專案或個人開發中,資料往往是系統的核心。如果發生誤刪或遭遇災難性故障(如硬碟損毀),良好的備份機制能大幅降低損失。同時,定期備份也能讓我們在測試新功能時,有「可回溯」的版本做復原測試。
MySQL 官方提供的 mysqldump 是最常用的備份工具,可快速將資料匯出成 SQL 檔案。以下是基本語法:
$ mysqldump -u [username] -p[password] [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 備份指令的分享,能幫你在面對資料庫風險時更有底氣,也讓你和你的專案都能更安心地持續前進!