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

MySQL 數據導入導出完全指南:mysqldump、mysql 命令、遠程遷移、壓縮優化

     編輯:MySQL 綜合教學

MySQL 數據導入導出完全指南:mysqldump、mysql 命令、遠程遷移、壓縮優化

數據導入導出是 DBA 與開發的日常核心操作。本文彙總 mysqldump 導出、mysql 導入、遠程跨實例遷移、大數據壓縮傳輸、圖形化工具對比,構建完整操作知識庫。

一、導出

1. 單庫導出

mysqldump -u[user] -p[pass] db_name > db_backup.sql

2. 所有庫導出

mysqldump -u[user] -p[pass] --all-databases > all_db_backup.sql

3. 指定表導出

mysqldump -u[user] -p[pass] db_name table1 table2 > table_backup.sql

4. 邊導出邊壓縮 (大庫必備)

mysqldump -u[user] -p[pass] db_name | gzip > db_backup.sql.gz

5. 遠程導出 (指定端口)

mysqldump -P 3306 -h [remote_ip] -u[user] -p[pass] db_name > db_backup.sql

二、導入

1. 基本導入 (指定庫)

mysql -u[user] -p[pass] -h[host] db_name < data.sql

2. 實例:導入到 blog 庫

mysql -u sat -p -h localhost blog < data.sql

3. 遠程專用實例導入

mysql -u[user] -p[pass] -h 202.54.1.10 databasename < data.sql
# 或域名
mysql -u[user] -p[pass] -h mysql.cyberciti.biz database-name < data.sql

4. SQL 文件已含 CREATE DATABASE (無需指定庫)

mysql -u[user] -p[pass] -h 202.54.1.10 < data.sql

三、進階實戰技巧

1. 只導出結構 (Schema 同步/審計)

mysqldump -u[user] -p[pass] -d db_name > schema.sql

2. 只導出數據 (數據遷移/初始化)

mysqldump -u[user] -p[pass] -t db_name > data.sql

3. 排除特定表

mysqldump -u[user] -p[pass] db_name --ignore-table=db_name.log_table > backup.sql

4. 指定 Where 條件導出子集

mysqldump -u[user] -p[pass] db_name tbl_name --where="created_at > '2023-01-01'" > subset.sql

5. 遠程到遠程直連遷移 (無本地落地)

mysqldump -h src_host -u u -p db1 --single-transaction -q | mysql -h dst_host -u u -p db1

6. 併行導入加速 (多表並行,需人工拆分 SQL)

# 拆分大表為多個文件後
for f in part_*.sql; do mysql -u u -p db < "$f" & done; wait

四、圖形化工具對比

工具平台優點缺點
MySQL Workbench跨平台官方、免費、視覺化導入導出向導、SQL 編輯器大文件易卡死、無併行導入
Navicat PremiumWin/Mac體驗最好、支援多源同步、結構同步、任務計劃收費、Mac 版偶發崩潰
DataGrip跨平台JetBrains 出品、智能補全、數據編輯器強大收費、啟動慢
DBeaver跨平台開源免費、支援所有 JDBC 源、ER 圖、Mock 數據UI 略顯粗糙
SQLyogWin輕量、導入導出向導完善、Schema 同步停止更新、無 Mac/Linux 版

五、官方文檔參考

  • mysqldump:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
  • mysql 客戶端:https://dev.mysql.com/doc/refman/5.6/en/mysql.html

六、避坑提醒

  1. 版本兼容:高版本導出導入低版本可能報錯 (如 8.0 → 5.7),建議 --compatible=mysql57 或用中間版本中轉。
  2. 字符集一致:導出導入雙端確認 character_set_client/connection/results,避免亂碼。
  3. 大事務導入:關閉 autocommit、調大 innodb_log_file_size、max_allowed_packet,或分批提交。
  4. 權限最小化:導出用戶只需 SELECT/LOCK TABLES/SHOW VIEW;導入用戶需 CREATE/INSERT/ALTER 權限。

命令行是最高效、可腳本化、無依賴的方式;圖形化工具適合偶發操作、結構對比、非技術人員協作。建議「命令行為主、GUI 為輔」,核心遷移腳本納入版本控制。

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