數據導入導出是 DBA 與開發的日常核心操作。本文彙總 mysqldump 導出、mysql 導入、遠程跨實例遷移、大數據壓縮傳輸、圖形化工具對比,構建完整操作知識庫。
mysqldump -u[user] -p[pass] db_name > db_backup.sql
mysqldump -u[user] -p[pass] --all-databases > all_db_backup.sql
mysqldump -u[user] -p[pass] db_name table1 table2 > table_backup.sql
mysqldump -u[user] -p[pass] db_name | gzip > db_backup.sql.gz
mysqldump -P 3306 -h [remote_ip] -u[user] -p[pass] db_name > db_backup.sql
mysql -u[user] -p[pass] -h[host] db_name < data.sql
mysql -u sat -p -h localhost blog < data.sql
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
mysql -u[user] -p[pass] -h 202.54.1.10 < data.sql
mysqldump -u[user] -p[pass] -d db_name > schema.sql
mysqldump -u[user] -p[pass] -t db_name > data.sql
mysqldump -u[user] -p[pass] db_name --ignore-table=db_name.log_table > backup.sql
mysqldump -u[user] -p[pass] db_name tbl_name --where="created_at > '2023-01-01'" > subset.sql
mysqldump -h src_host -u u -p db1 --single-transaction -q | mysql -h dst_host -u u -p db1
# 拆分大表為多個文件後 for f in part_*.sql; do mysql -u u -p db < "$f" & done; wait
| 工具 | 平台 | 優點 | 缺點 |
|---|---|---|---|
| MySQL Workbench | 跨平台 | 官方、免費、視覺化導入導出向導、SQL 編輯器 | 大文件易卡死、無併行導入 |
| Navicat Premium | Win/Mac | 體驗最好、支援多源同步、結構同步、任務計劃 | 收費、Mac 版偶發崩潰 |
| DataGrip | 跨平台 | JetBrains 出品、智能補全、數據編輯器強大 | 收費、啟動慢 |
| DBeaver | 跨平台 | 開源免費、支援所有 JDBC 源、ER 圖、Mock 數據 | UI 略顯粗糙 |
| SQLyog | Win | 輕量、導入導出向導完善、Schema 同步 | 停止更新、無 Mac/Linux 版 |
mysqldump:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.htmlmysql 客戶端:https://dev.mysql.com/doc/refman/5.6/en/mysql.html--compatible=mysql57 或用中間版本中轉。character_set_client/connection/results,避免亂碼。autocommit、調大 innodb_log_file_size、max_allowed_packet,或分批提交。命令行是最高效、可腳本化、無依賴的方式;圖形化工具適合偶發操作、結構對比、非技術人員協作。建議「命令行為主、GUI 為輔」,核心遷移腳本納入版本控制。