MySQL 客戶端程式 `mysql` 是資料庫日常操作的核心工具,但預設操作模式存在重複輸入、長查詢編輯困難等痛點。本文系統整理四大類實用技巧,助您大幅提升操作效率。
建立 `~/.my.cnf`(Windows 為 `C:\my.cnf`),內容範例:
[client] host=your_host user=your_user password=your_pass
設定權限 `chmod 600 .my.cnf` 保護敏感資訊。支援 MySQL 3.22+ 版本,所有客戶端工具(含 `mysqlimport`)通用。
tcsh/bash 等 Shell 支援歷史指令重呼:
tcsh/csh 別名: `alias samp_db 'mysql -h host -u user -p db'`
bash 別名: `alias samp_db='mysql -h host -u user -p db'`
Shell 腳本(UNIX):
#!/bin/sh exec mysql -h host -u user -p db
批次檔: `mysql -h host -u user -p db`
將別名寫入 `.cshrc`/`.bash_profile` 或腳本放入 PATH 目錄,多資料庫環境可定義多組快捷指令。
`mysql` 整合 GNU Readline,支援:
注意:Windows 原版不支援,可使用 Cygwin 版 `mysqlc`。
工作流程:
進階技巧:
將查詢存檔(含分號結尾),執行:
mysql db_name < query.sql
參數化腳本範例(`interests.sh`):
#!/bin/sh
[ $# -eq 0 ] && { echo "Usage: $0 keyword"; exit 1; }
mysql -h host -u user -p db <
使用:`./interests.sh "Civil War"` 即時帶入關鍵字。
4. 利用現有資料批量建立記錄
避免手工 `INSERT`,採用 `LOAD DATA` 或 `mysqlimport`:
- 試算表選取資料 → 複製
- 終端機 `cat > data.txt` → 貼上 → Enter → Ctrl-D
- `LOAD DATA INFILE 'data.txt' INTO TABLE tbl`
大量資料建議匯出 Tab 分隔文字檔,FTP 二進制模式上傳 UNIX,處理換行符差異(Unix LF / Win CRLF / Mac CR),移除尾部空白行防止髒資料。
結語
掌握這些技巧後,您將從繁瑣的輸入工作中解脫,專注於資料分析與邏輯構建。下一階段將進入 Perl DBI 與 PHP API 開發實戰,構建完整應用系統。