比 PHPMyAdmin 等 Web 介面更穩定、無上傳大小限制、適合自動化腳本、大庫 (GB 級) 也能跑完。
| 場景 | 指令 |
|---|---|
| 整庫備份 | mysqldump -u user -p db_name > backup.sql |
| 單表備份 | mysqldump -u user -p db_name tbl_name > tbl.sql |
| 僅結構 | mysqldump -u user -p -d --add-drop-table db_name > schema.sql |
| 壓縮備份 | mysqldump -u user -p db_name | gzip > backup.sql.gz |
| 進入 MySQL 後還原 | mysql -u user -p db_name < backup.sql 或 SOURCE /path/backup.sql; |
| SSH 遠端直接同步 | mysqldump -h host -u user -p db_name | ssh user@remote "mysql -u user -p db_name" |
.sql 或 .sql.gz 到伺服器 (scp/sftp/rz)cd /path/to/sqlgunzip backup.sql.gzmysql -u user -p db_name < backup.sqlSOURCE backup.sql; (顯示進度)關鍵參數調優:
max_allowed_packet=1G (避免大包中斷)innodb_buffer_pool_size 設大一點 (如實體記憶體 70%)innodb_flush_log_at_trx_commit=2 匯入期間 (風險自負)--quick --single-transaction 導出減少鎖爭用
# 備份
mysqldump -h mysql.domain.com -u db_user -p db_name > backup.sql
# 還原
mysql -h mysql.domain.com -u db_user -p db_name < backup.sql
注意:共享主機常限制 max_allowed_packet、wait_timeout,大表需分批導出。