mysql 是最核心的命令行客戶端,掌握其參數能大幅提升日常操作與自動化腳本效率。
| 類別 | 核心參數 | 說明 |
|---|---|---|
| 連線認證 | -u, --user | 用戶名 |
| -p, --password[=pwd] | 密碼(不帶值會提示輸入,更安全) | |
| -h, --host | 主機名/IP(預設 localhost) | |
| -P, --port | 埠號(預設 3306) | |
| 預設環境 | -D, --database | 預設資料庫(等同 USE db) |
| --default-character-set | 連線字符集(如 utf8mb4) | |
| --delimiter | 語句分隔符(預設 ;) | |
| 輸出格式 | -E, --vertical | 垂直顯示 |
| -H, --html | HTML 表格輸出 | |
| -X, --xml | XML 輸出 | |
| -t, --table | 表格輸出(預設,交互模式) | |
| -B, --batch | 批次模式(Tab 分隔,無框線,適合腳本) | |
| 執行控制 | -e, --execute | 直接執行 SQL 字串(不進入交互) |
| -f, --force | 錯誤繼續執行 | |
| -v, --verbose | 輸出執行的 SQL | |
| -q, --quick | 不緩存結果,逐行輸出(大結果集節省記憶體) | |
| 安全/SSL | --ssl | 啟用 SSL |
| --ssl-ca/--ssl-cert/--ssl-key | CA/客戶端證書/私鑰路徑 | |
| --secure-auth | 拒絕舊版認證插件 | |
| 調試/開發 | --debug | 除錯追蹤 |
| -A, --no-auto-rehash | 禁用自動補全(啟動更快) | |
| --show-warnings | 每條語句後顯示警告 |
mysql -uroot -p'pwd' -D test -B -e "SHOW TABLES;"
# 輸出:純文本 Tab 分隔,無框線,適合管道處理
mysql -h db.prod.example.com -P 3306 -u admin -p --ssl --compress -e "SHOW SLAVE STATUS\G"
mysql -uroot -p --default-character-set=gbk -e "SHOW VARIABLES LIKE '%char%';"
mysql -uroot -p --prompt="PROD \u@\h [\d]> "
# 顯示:PROD root@db-prod [test]>
mysql -uroot -p --pager="less -S" -e "SELECT * FROM big_table;"
# -S 禁用換行,左右鍵水平滾動
mysql -uroot -p --tee=/tmp/mysql_session.log
# 會話所有輸出同時寫入檔案
-ppassword(無空格)會在進程列表洩露,生產環境必須用 -p 互動輸入或 --defaults-extra-file-B 會禁用歷史紀錄、自動補全、表格框線-q 配合大結果集導出,避免客戶端 OOMmysql --help 為準
# ~/.my.cnf (Linux) 或 %APPDATA%\my.ini (Windows)
[client]
user = root
password = "your_password"
host = 127.0.0.1
port = 3306
default-character-set = utf8mb4
prompt = "\\u@\\h [\\d]> "
權限設為 600,命令行無需帶參數即可連線,更安全、更便捷。