mysqldump 導出、source 導入是最基礎也最常用的組合,掌握參數細節能大幅提升運維效率。
| 需求 | 命令範例 | 關鍵參數說明 |
|---|---|---|
| 整庫導出(結構+數據) | mysqldump -u user -p dbname > db.sql | 無特殊參數,預設含 CREATE TABLE 與 INSERT |
| 單表導出 | mysqldump -u user -p dbname tbl > tbl.sql | 表名放在資料庫名之後 |
| 僅導出結構(無數據) | mysqldump -u user -p -d --add-drop-table dbname > schema.sql | -d 無數據;--add-drop-table 重建前先 DROP |
| 僅導出數據(無結構) | mysqldump -u user -p -t dbname > data.sql | -t 不含 CREATE TABLE |
| 遠程導出並壓縮 | mysqldump -h host -u user -p dbname | gzip > db.sql.gz | 管道配合 gzip 節省頻寬與磁碟 |
# 進入 MySQL 客戶端
mysql -u root -p
# 選擇目標資料庫
mysql> USE target_db;
# 執行導入
mysql> SOURCE /path/to/db.sql;
或直接在 Shell 執行:
mysql -u root -p target_db < /path/to/db.sql
--quick --single-transaction(InnoDB)避免鎖表與記憶體暴漲。SET FOREIGN_KEY_CHECKS=0; SET UNIQUE_CHECKS=0; SET AUTOCOMMIT=0;COMMIT;。mysqldump --databases db1 db2 ... 或單表循環導出再並行導入。MySQL Workbench、Navicat、DataGrip 等 GUI 工具提供可視化備份/還原向導,適合不熟悉命令列的開發人員。
