MySQL 客戶端默認提示符 mysql> 信息極少。通過自定義 prompt,可在提示符中顯示當前用戶、主機、數據庫、時間、連接 ID 等關鍵上下文,大幅提升多環境操作的辨識度與安全性。本文詳解所有轉義序列、四種配置方式與最佳實踐配置。
export MYSQL_PS1="(\u@\h) [\d]> "
mysql --prompt="(\u@\h) [\d]> "
# 顯示效果:(user@host) [database]>
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
注意:配置文件中反斜杠需雙重轉義 \\\\。
mysql> prompt (\u@\h) [\d]>_
PROMPT set to '(\u@\h) [\d]>_'
(user@host) [database]>
輸入 prompt 回車可恢復默認。
| 序列 | 含義 | 示例輸出 |
|---|---|---|
\c | 當前會話語句計數器(遞增) | 12 |
\D | 完整日期 | 2024-01-15 |
\d | 當前默認數據庫 | my_db |
\h | 服務器主機名/IP | 192.168.1.10 |
\l | 當前分隔符(5.1.12+) | ; |
\m | 分鐘 | 30 |
\n | 換行符 | (換行) |
\O | 月份縮寫 | Jan |
\o | 月份數字 | 01 |
\P | AM/PM | PM |
\p | TCP 端口/Socket 文件 | 3306 |
\R | 24 小時制時間 | 14:30 |
\r | 12 小時制時間 | 02:30 |
\S | 分號 | ; |
\s | 秒 | 45 |
\t | Tab 字符 | (制表) |
\U | 完整用戶名@主機名 | root@192.168.1.10 |
\u | 用戶名 | root |
\v | 服務器版本 | 8.0.33 |
\w | 星期縮寫 | Mon |
\Y | 四位年份 | 2024 |
\y | 兩位年份 | 24 |
\_ | 空格 | |
\ | 空格(反斜杠+空格) | |
\' | 單引號 | ' |
\" | 雙引號 | " |
\\ | 反斜杠本身 | \ |
\x | 任意未列出字符 x 原樣輸出 | x |
[mysql]
prompt="\\U [\\d] \\R> "\
# 效果:root@192.168.1.10 [prod_db] 14:30:45>
[mysql]
prompt="(\\u@\\h) [\\d]> "\
# 效果:(root@localhost) [dev_db]>
[mysql]
prompt="\\c:\\d> "\
# 效果:5:my_db> (第 5 條語句)
prompt="\\033[31m\\U [\\d]\\033[0m> "(紅色)mysql --prompt="batch_\\d> " -e "..."\l(分隔符)\I(線程 ID)、\V(客戶端版本)養成習慣:每台 MySQL 服務器首次登錄即配置 prompt,避免「以為在測試庫實則在生產庫」的血淚教訓。