第 56.1 节:自定义 MySQL PS1 显示当前数据库
在 .bashrc 或 .bash_profile 中添加:
export MYSQL_PS1="\u@\h [\d]>"
使 MySQL 客户端的提示符显示 当前用户@主机 [数据库名]>。
[图片占位符]
第 56.2 节:通过 MySQL 配置文件自定义 PS1
在 my.cnf(或 mysqld.cnf)中:
[mysql]
prompt = '\u@\h [\d]>'
这样无需处理 .bashrc 即可实现类似效果。
第 56.3 节:两种方式的优先级(踩坑提醒)
如果 ~/.bashrc 和 my.cnf 里都写了,MYSQL_PS1 环境变量优先级更高,会覆盖配置文件里的 prompt。
如果你的 my.cnf 改完后不生效,请检查是否把 prompt 错写在了 [mysqld] 段落下(这是服务端配置,无效),必须写在 [mysql] 或 [client] 段落下。
第 56.4 节:加入 ANSI 颜色(高危环境必配)
默认文本在黑底白字下容易看花眼。强烈建议在提示符里加颜色,比如生产环境用红底白字,测试环境用绿字:
在 ~/.bashrc 中配置(使用 \e 转义):
# 生产环境(红色数据库名)
export MYSQL_PS1="\u@\h [\e[01;31m\]\d[\e[00m\]> "
# 测试环境(绿色数据库名)
export MYSQL_PS1="\u@\h [\e[01;32m\]\d[\e[00m\]> "
在 my.cnf 中同样支持:
[mysql]
prompt = '\u@\h [\e[01;32m\]\d[\e[00m\]> '
效果:当你 USE test_db; 时,数据库名会瞬间变绿/变红,极大降低“删库跑路”误操作的概率。
第 56.5 节:必加的“端口号”(多实例必备)
如果你在一台服务器上部署了多个 MySQL 实例(如 3306、3307),仅看 \h(主机名)无法区分。强烈建议加入 \P(端口):
export MYSQL_PS1="\u@\h:\P [\d]> "
这样提示符会变成 root@localhost:3307 [test_db]>,一目了然。
第 56.6 节:长查询时自动换行(提升体验)
如果 SQL 写得很长,提示符顶在最左边会让输出日志难以阅读。加入换行符 \n:
[mysql]
prompt = '\u@\h [\d]>\n-> '
这样输入多行 SQL 时,第二行会显示 ->,清晰区分输入行和输出结果。
第 56.7 节:临时动态修改(无需退出客户端)
如果不想重启客户端或重读配置,在 mysql> 命令行内直接执行:
PROMPT \u@\h [\d]>
这条 SQL 命令会立即覆盖当前会话的提示符,测试颜色效果非常方便。