除 phpMyAdmin/Navicat 等 GUI 工具外,MySQL 原生命令行客戶端 mysql 結合 Shell 重定向、tee 命令、Xcopy 物理備份,能高效完成數據導入導出、腳本自動化、離線備份。本文系統總結 5 種實戰方案。
mysql -h host_ip -P port -u username -p password dbname -A
-A / --no-auto-rehash:啟動不加載元數據,極速進入,大庫必加。-p,交互式輸入更安全。mysql -h host -P port -u user -p dbname < sql_file.sql
標準批量導入方式,適合結構初始化、大量數據裝載。
cat sql_query.sql | mysql -h host -P port -u user -p dbname > /tmp/data.txt
\N。Excel → 數據 → 從文本/CSV 導入,選 Tab 分隔符即可。LIMIT 分批導出,避免單文件過大。mysql> tee /tmp/session.log
Logging to file '/tmp/session.log'
mysql> SELECT * FROM users;
mysql> notee
mysql> \! cat /tmp/session.log
SELECT * FROM users INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
secure_file_priv 限制)。GRANT FILE ON *.* TO 'user'@'host';db_back.bat:@echo off
net stop mysql
xcopy "E:\AppServ\MySQL\data\lastnonsp3\*.*" "D:\db_backup\%date:~0,10%\" /Y /E /I
net start mysql
net stop mysql 確保數據文件一致性(冷備份)。xcopy /Y /E /I 覆蓋、遞歸、目標不存在自動創建目錄。%date:~0,10% 取日期 YYYY-MM-DD 作為目錄名。
| 方案 | 適用場景 | 優點 | 缺點 |
|---|---|---|---|
| mysql < sql_file | 結構/數據導入 | 標準、支援事務 | 大文件較慢 |
| cat sql \| mysql > file | 導出 Tab 文本 | 客戶端導出、無需 FILE 權限 | 無表頭、格式固定 |
| tee | 會話審計、小導出 | 完整記錄交互 | 非結構化、難解析 |
| INTO OUTFILE | 服務端導出 CSV | 格式靈活、性能最好 | 需 FILE 權限、受 secure_file_priv 限制 |
| Xcopy 停機備份 | Windows 物理備份 | 文件級、無邏輯解析開銷 | 需停機、不支援增量、跨平台差 |
命令行導出靈活輕量,導出首選 INTO OUTFILE(有權限)或 cat sql | mysql > file(無權限);Windows 物理備份可用 Xcopy 停機腳本,Linux 推薦 xtrabackup 熱備份。自動化腳本務必加入錯誤碼檢查、日誌輪轉、備份驗證環節。