首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux 下 MySQL 資料庫匯出匯入命令速查:mysqldump 與 source 實戰

     編輯:MySQL 綜合教學

Linux 環境 MySQL 匯出/匯入命令速查表

掌握 mysqldump 匯出與 source/管道匯入兩大核心技能,覆蓋結構、資料、壓縮、跨庫遷移常見場景。

一、匯出命令

需求命令說明
匯出資料 + 結構 (標準)mysqldump -u user -p db_name > db_name.sql輸入密碼後生成 SQL 檔
僅匯出表結構 (無資料)mysqldump -u user -p -d db_name > db_name.sql-d / --no-data
匯出指定表mysqldump -u user -p db_name tbl1 tbl2 > tables.sql表名空格分隔
匯出並壓縮 (推薦大庫)mysqldump -u user -p db_name | gzip > db_name.sql.gz管道串流壓縮,不佔臨時空間
匯出多個庫mysqldump -u user -p --databases db1 db2 > multi.sql含 CREATE DATABASE 語句
帶條件匯出 (如近 30 天)mysqldump -u user -p db_name tbl --where="created_at > DATE_SUB(NOW(), INTERVAL 30 DAY)" > part.sql--where 過濾

注意:-p 後不加密碼 (安全),執行後提示輸入;或寫腳本用 -p'password' (無空格)。

二、匯入命令

方法一:source 命令 (進入 MySQL 客戶端)

mysql -u user -p
# 進入後
CREATE DATABASE IF NOT EXISTS db_name;
USE db_name;
SET NAMES utf8mb4;
SOURCE /path/to/db_name.sql;

優點:可見執行進度、錯誤行號、支援超大檔案分批提交。

方法二:管道重導向 (非互動、腳本適用)

# 一般匯入
mysql -u user -p db_name < db_name.sql

# 壓縮檔直接匯入
gunzip < db_name.sql.gz | mysql -u user -p db_name

# 跨伺服器直接遷移 (無落地檔)
mysqldump -u user -p db_name | mysql -h target_host -u user -p db_name

建議優先使用方法二,適合自動化腳本、CI/CD 流水線。

三、關鍵路徑與權限

  • mysqldump 通常在 /usr/local/mysql/bin/ 或 /usr/bin/ (包管理安裝)。
  • 匯出檔案路徑需當前用戶可寫 (如 /home/user/backup/)。
  • 匯入前確認目標資料庫已建立、字符集一致 (utf8mb4 推薦)。

四、常見問題速查

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象原因解決
Unknown database目標庫不存在先 CREATE DATABASE
ERROR 1062 Duplicate entry主鍵/唯一鍵衝突用 --add-drop-table 匯出、或先 DROP TABLE
中文亂碼字符集不一致匯出/匯入均指定 --default-character-set=utf8mb4、SET NAMES utf8mb4
MySQL server has gone away大包超時/超過 max_allowed_packet增大 max_allowed_packet=512M、net_read_timeout=600