mysqldump 是 MySQL 官方自帶的邏輯備份工具,功能強大且無需停機。本文針對 CentOS 環境,詳細說明全庫、單表、多表、僅結構、僅資料、遠程備份等常見場景的實戰命令,並補充匯入最佳實踐。
工具位置:/usr/local/mysql/bin/mysqldump(或 PATH 中任意目錄直接呼叫)。
mysqldump -u root -p dbname > /backup/dbname_$(date +%F).sql
輸入密碼後自動完成,產出含 CREATE TABLE 與 INSERT 的 SQL 檔。
mysqldump -u root -p -d dbname > structure.sql
-d / --no-data 參數抑制 INSERT 語句。
mysqldump -u root -p -t dbname > data_only.sql
-t / --no-create-info 參數抑制 CREATE TABLE。
mysqldump -u root -p dbname table_name > /backup/table_name.sql
mysqldump -u root -p dbname table1 table2 > multi_tables.sql
例:備份 WordPress 核心表 wp_posts wp_options。
mysqldump -h remote_ip -u root -p dbname > /local/path/backup.sql
需遠程 MySQL 開放 3306 並授權該客戶端 IP 登入。
--single-transaction:InnoDB 熱備份必加,保證一致性不鎖表。--routines --triggers --events:包含存儲過程、觸發器、事件。--master-data=2:在輸出中加入 CHANGE MASTER TO 註釋(從庫搭建用)。--hex-blob:二進制欄位用十六進制導出,避免編碼問題。--compress:網路傳輸壓縮,遠程備份加速。mysql -u root -p dbname mysql> SOURCE /backup/dbname.sql;
mysql -u root -p dbname < /backup/dbname.sql
gunzip -c backup.sql.gz | mysql -u root -p dbname
mysqldump --help 確認版本支援的參數。--quick(預設開啟)避免緩衝整張表到記憶體。CHECKSUM TABLE 或抽樣 SELECT COUNT(*) 對比源庫。SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER 權限。善用 mysqldump 靈活參數,構建可靠、可自動化的 MySQL 備份體系。