首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL導入導出全攻略:數據、結構、函數、存儲過程一網打盡

     編輯:MySQL 資料庫相關知識

mysqldump與mysql客戶端是MySQL資料遷移、備份還原的核心工具組合。本文系統梳理四大導出場景、兩大導入方式、關鍵參數與常見坑點,構建完整操作手冊。

導出命令大全

場景命令範例關鍵參數說明
整庫導出(含數據)mysqldump -h host -u user -p dbname > backup.sql未指定路徑輸出至當前目錄
單表導出mysqldump -h host -u user -p dbname table_name > table.sql表名位於資料庫後
僅導出結構(無數據)mysqldump -h host -u user -p -d --add-drop-table dbname > struct.sql-d無數據;--add-drop-table建表前加DROP
導出函數與存儲過程mysqldump -h host -u user -p -n -t -d -R dbname > routines.sql-n無建庫;-t無建表;-d無數據;-R導出routines

注意:-ntd組合等價於-n -t -d(無建庫、無建表、無數據),專用於導出routines。

導入命令

方式一:mysql客戶端管道導入(推薦,支援大文件)

mysql -h host -u user -p dbname < backup.sql

方式二:source命令(需進入mysql交互模式)

mysql -h host -u user -p dbname
mysql> source /path/to/backup.sql;

關鍵參數深度解析

  • --single-transaction:InnoDB熱備份不鎖表,保證一致性視圖(必加)
  • --routines --triggers --events:同步導出存儲過程/觸發器/事件(8.0+預設開啟)
  • --set-gtid-purged=OFF:避免GTID資訊干擾異構遷移
  • --default-character-set=utf8mb4:顯式指定字符集,防止亂碼
  • --hex-blob:二進制欄位用十六進制導出,避免特殊字符問題
  • --quick:大表分批讀取,不緩存全表至記憶體
  • --compress:網路傳輸壓縮(慢網環境有效)

Windows 路徑注意事項

  • 未指定路徑時,輸出至用戶工作目錄(如C:\Users\Admin)
  • 建議顯式指定完整路徑:mysqldump ... > D:\backups\db.sql
  • PowerShell中重導向輸出編碼預設UTF-16,建議用cmd或加| Out-File -Encoding utf8

常見問題排查

現象原因解決
導入報錯Unknown database目標庫不存在先CREATE DATABASE或導出時加-B含建庫語句
導入亂碼字符集不匹配導出導入雙端指定--default-character-set;SQL文件首行加/*!40101 SET NAMES utf8mb4 */;
大文件導入慢單事務提交、索引維護導入前SET UNIQUE_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;,後恢復
函數/存儲過程導入失敗權限不足或log_bin_trust_function_creators=OFF設置SET GLOBAL log_bin_trust_function_creators=1;

掌握mysqldump全參數矩陣,讓資料遷移從「試錯」變為「標準化作業」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved