在系統命令列(非 MySQL 客戶端)執行:
# 備份單庫
mysqldump -u root -p db_name > /path/backup.sql
# 備份多庫
mysqldump -u root -p --databases db1 db2 > /path/backup.sql
# 備份所有庫
mysqldump -u root -p --all-databases > /path/backup.sql
# 僅結構(不含數據)
mysqldump -u root -p -d db_name > /path/structure.sql
# 壓縮輸出
mysqldump -u root -p db_name | gzip > /path/backup.sql.gz
進入 MySQL 客戶端後執行:
mysql -u root -p
CREATE DATABASE IF NOT EXISTS db_name;
USE db_name;
SOURCE /path/backup.sql;
或直接在系統命令列:
mysql -u root -p db_name < /path/backup.sql
術語上:還原即將備份文件導入資料庫;備份即導出 SQL 文件。
| 參數 | 作用 |
|---|---|
| -u | 用戶名 |
| -p | 提示輸入密碼(或 -p密碼 直接寫入,不安全) |
| --databases | 指定多個數據庫,輸出包含 CREATE DATABASE |
| --all-databases | 備份所有庫 |
| -d / --no-data | 僅導出結構 |
| -t / --no-create-info | 僅導出數據(不含建表語句) |
| --single-transaction | InnoDB 熱備份(一致性快照,不鎖表) |
| --lock-tables | 鎖表備份(MyISAM 適用) |
| --routines | 包含存儲過程/函數 |
| --triggers | 包含觸發器 |
--single-transaction 實現無鎖一致性備份。