MySQL 客戶端 prompt 支援 28 個轉義序列,可在提示符中動態顯示用戶、主機、數據庫、時間、版本、計數器等上下文信息。本文提供完整選項表、配置示例與生產級最佳實踐。
# 1. 命令行臨時指定
mysql -uroot -p --prompt="\\u@\\h:\\d \\r:\\m:\\s>"
# 2. my.cnf 永久生效([mysql] 區塊)
[mysql]
prompt="mysql(\\u@\\h:\\d)>"
default-character-set=utf8
| 選項 | 描述 | 輸出示例 |
|---|---|---|
\\c | 語句計數器(遞增) | 1, 2, 3... |
\\D | 完整當前日期 | 2023-01-15 |
\\d | 默認數據庫 | test / (none) |
\\h | 服務器主機 | localhost |
\\l | 當前分隔符 (5.1.12+) | ; |
\\m | 分鐘 | 23 |
\\n | 換行符 | \n |
\\O | 月份縮寫 | Jan |
\\o | 月份數字 | 01 |
\\P | am/pm | am |
\\p | TCP 埠或 Socket 文件 | 3306 |
\\R | 24 制小時 (0-23) | 20 |
\\r | 12 制小時 (1-12) | 08 |
\\S | 分號 | ; |
\\s | 秒 | 32 |
\\t | 製表符 | \t |
\\U | 完整 user@host | root@localhost |
\\u | 用戶名 | root |
\\v | 服務器版本 | 5.7.42 |
\\w | 星期縮寫 | Mon |
\\Y | 四位年份 | 2023 |
\\y | 兩位年份 | 23 |
\\_ | 空格 | |
\\ | 空格(反斜杠後跟空格) | |
\\' | 單引號 | ' |
\\\" | 雙引號 | " |
\\\\ | 字面反斜杠 | \ |
\\x | 任意未列出字符 x(原樣輸出) | x |
# 極簡
prompt="\\u@\\h:\\d>"
# 標準(含計數器、24制時間)
prompt="\\u@\\h:\\d [\\c] \\R:\\m:\\s>"
# 詳細(含版本、完整日期)
prompt="\\U [\\v] \\D \\R:\\m:\\s \\d>"
# 彩色(ANSI 轉義,終端需支援)
prompt="\\033[1;32m\\u@\\h\\033[0m:\\033[1;34m\\d\\033[0m \\R:\\m:\\s>"
# /etc/profile.d/mysql-prompt.sh
export MYSQL_PS1="\\u@\\h:\\d \\R:\\m:\\s>"
# 所有用戶登入自動生效,無需修改 my.cnf
\\\\u,my.cnf 單反斜杠 \\u。將上下文信息前置於提示符,是降低操作風險、提升診斷效率的零成本高收益動作。