日常與 MySQL 互動時,重複輸入連線參數、長查詢編寫修改、批次匯入資料等操作極易成為效率瓶頸。本文系統整理 mysql 客戶端的四大效率提升維度:選項檔自動連線、Shell 歷史與別名加速、輸入行編輯器善用、批次模式與資料轉匯技巧,助您從「手動操作者」轉型為「指揮自動化流程的工程師」。
~/.my.cnf(推薦標準作法)建立家目錄下 .my.cnf,權限 600:
[client]
host=db.example.com
user=app_user
password=StrongPassword
database=app_db
mysql、mysqldump、mysqlimport 等)自動讀取C:\my.cnf 或 %APPDATA%\my.cnf!my:快速重跑最近以 my 開頭的指令Ctrl+R 反向搜尋歷史(Bash/Zsh)↑/↓ 或 Ctrl+P/N 瀏覽歷史列表Csh/Tcsh 別名:
alias samp_db 'mysql -h db.example.com -u app_user -pStrongPassword app_db'
Bash 別名(寫入 ~/.bashrc):
alias samp_db='mysql -h db.example.com -u app_user -pStrongPassword app_db'
Shell 腳本 samp_db.sh(需 chmod +x):
#!/bin/sh
exec mysql -h db.example.com -u app_user -pStrongPassword app_db
Windows 批次檔 samp_db.bat:
@echo off
mysql -h db.example.com -u app_user -pStrongPassword app_db
多環境可建立 samp_db_prod、samp_db_staging 等多個別名/腳本。
| 快捷鍵 | 功能 |
|---|---|
Ctrl+A / Ctrl+E | 移至行首/行尾 |
Ctrl+B / Ctrl+F | 逐字元向左/右移動 |
Alt+B / Alt+F | 逐單字向左/右移動 |
Ctrl+U | 剪除游標至行首 |
Ctrl+K | 剪除游標至行尾 |
Ctrl+Y | 貼上剪除內容 |
Ctrl+R | 反向搜尋歷史 |
↑/↓ 或 Ctrl+P/N | 上/下一條歷史 |
| 交換游標前兩字元 |
實戰範例:輸入 SELECT * FROM president WHERE name='persident'; 發現拼字錯誤,按 Ctrl+A 回行首 → Ctrl+F 移至錯字 → Ctrl+T 交換或 Backspace 修正 → Enter 執行。
Windows 限制:原生 mysql.exe 不支援 Readline,可安裝 Cygwin 版 mysqlc 或改用 MySQL Workbench、DBeaver 等 GUI 工具。
queries.sqlmysql 進入互動模式Ctrl+C → 終端機 Ctrl+Shift+V(或右鍵貼上) → Entermysql 歷史自動寫入 ~/.mysql_history,可反向複製至編輯器建立查詢庫單一查詢檔 query.sql:
SELECT name, interests FROM member WHERE interests LIKE '%history%';
執行:mysql -u user -p db_name < query.sql
參數化 Shell 腳本 interests.sh:
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Usage: $0 "
exit 1
fi
mysql -u user -p db_name <
使用:./interests.sh Jefferson、./interests.sh depression
cat > data.txt 等待輸入Ctrl+C → 終端機視窗 Ctrl+Shift+V 貼上Enter 確認換行 → Ctrl+D 結束輸入scp/sftp 上傳 → LOAD DATA INFILE 或 mysqlimport 匯入關鍵參數:
FIELDS TERMINATED BY '\t' ENCLOSED BY '\"' ESCAPED BY '\\\\'LINES TERMINATED BY '\n'(Linux)或 '\r\n'(Windows 產出檔案)# 1. 匯出結構與資料(生產 → 開發)
mysqldump -h prod-db -u user -p --no-data db_name > schema.sql
mysqldump -h prod-db -u user -p --no-create-info --extended-insert db_name | gzip > data.sql.gz
# 2. 匯入開發環境
mysql -h dev-db -u user -p db_name < schema.sql
zcat data.sql.gz | mysql -h dev-db -u user -p db_name
# 3. 跨資料庫同步特定表
mysqldump -h src-db -u user -p db_name tbl1 tbl2 | mysql -h dst-db -u user -p db_name
掌握 .my.cnf、Shell 別名、Readline 編輯、批次腳本與 LOAD DATA 匯入流程,可將日常 MySQL 操作效率提升 80% 以上。建議將常用查詢整理為參數化腳本庫、建立個人 .my.cnf 範本納入版控、定期清理 ~/.mysql_history 敏感資訊。工具的熟練度往往決定了 DBA 與開發者在故障排查、資料遷移、效能調優時的反應速度——從今天開始建立您的「MySQL 效率工具箱」吧。