mysql 命令列客戶端提供數十個啟動選項,掌握核心 10 個即可應對 90% 日常運維開發場景。
| 選項 | 縮寫 | 說明 | 範例 |
|---|---|---|---|
--host | -h | 連線主機 IP/主機名 | -h 192.168.1.100 |
--user | -u | 登入用戶名 | -u admin |
--password | -p | 密碼 (緊接無空格或留空提示輸入) | -pSecret123 / -p |
--port | -P | 連線埠 (大寫 P) | -P 3307 |
--database | -D | 預設資料庫 | -D app_db |
--execute | -e | 直接執行 SQL 並退出 (適合腳本) | -e "SELECT VERSION();" |
--batch | -B | 批次模式:表格輸出改為 Tab 分隔,無互動提示 | -B -e "SELECT * FROM t" |
--skip-column-names | -N | 不輸出欄位標題列 (配合 -B 產生純資料) | -B -N -e "SELECT id FROM t" |
--xml | -X | 輸出 XML 格式 (便於程式解析) | -X -e "SELECT * FROM t" |
--safe-updates | -U | 安全模式:禁止無 WHERE 的 UPDATE/DELETE、限制大結果集 | -U |
# 1. 自動化備份腳本常用:批次 + 無標題 + 指定庫 + 執行 SQL mysql -h 10.0.0.1 -u backup -p'Pass' -P 3306 -D app_db -B -N -e "SELECT * FROM logs WHERE dt < DATE_SUB(NOW(), INTERVAL 30 DAY)" > /backup/old_logs.tsv # 2. XML 輸出整合其他系統 mysql -u root -p -X -e "SHOW ENGINE INNODB STATUS\G" > innodb_status.xml # 3. 安全模式防誤刪 (生產環境建議別名) alias mysql-safe='mysql --safe-updates' mysql-safe -u app -p -D app_db
將常用參數寫入 ~/.my.cnf (Linux) 或 %APPDATA%\my.ini (Windows):
[client] host=192.168.1.100 user=app_user password=StrongPass port=3306 database=app_db # 安全模式 safe-updates
thereafter mysql 直接啟動即套用,無需重複輸入。
mysql --help | head -80 # 或啟動後 mysql> \s (status) mysql> SHOW VARIABLES LIKE '%init%';