PostgreSQL: 关于 psql 的 Prompting 设置

今天在维护一个开发库时发现个奇怪的现象,psql 登陆到数据库后显示如下:

psql 连接示例

1
2
3
4
5
[postgres@xxx_xx_x_xxx ~]$ psql
psql (8.4.3)
Type "help" for help.

SQL>postgres@ postgres 15:47:47=#

备注:红色字体部分为特殊的部分,一般不会显示这么多信息,这一串是什么内容?表示的是什么?在哪里可以设置呢? 之后会做分析。

psql 常规显示

1
2
3
4
5
[pg92@redhatB ~]$ psql
psql (9.2.1)
Type "help" for help.

postgres=#

备注:默认情况 psql 连接库后不会显示之前那么多信息,猜想这可能可以通过 psql 选项设置,带着这个问题查阅了 psql 相关文档,文档上关于 psql 的内容很多,高兴的是每次查阅 psql 文档都能学到点新东西。

查看 .psqlrc 文件

1
2
[postgres@xxx_xx_x_xxx src]$ cat ~/.psqlrc
set PROMPT1 'SQL>%n@ %/ %`date +%H:%M:%S`%R%#'

备注:在查看了手册后,知道可以在 .psqlrc 文件中保存设置(安装的开发人员挺有才的。),以便不用
每次设置。那这串表示什么意思呢? 参考下面的解释就明白了。

常见 Prompting 参数

Prompting 参数以百分号 % 打头,主要有如下:

Prompting 参数 含义
%M 数据库主机全名,如果通过 UNIX Socket 连接则显示为 [local]
%m 也表示数据库主机名,会截断第一个 . 后的内容
%> 数据库端口号
%n 会话的用户名
%/ 当前数据库名
%# 如果是超级用户显示为 #,否则显示为 >
%R 在prompt 1中,通常显示 = ,单用户模式显示为 ^,如果会话被断开显示为 !, 等等。

备注: 默认的 prompt 的设置为 ‘%/%R%# ‘。

5 更改成默认 prompt 形式:

1
2
3
4
5
6
7
8
9
10
11
12
[postgres@xxx_xx_x_xxx ~]$ psql
psql (8.4.3)
Type "help" for help.

SQL>postgres@ postgres 16:23:09=#select current_database(),current_user;
current_database | current_user
------------------+--------------
postgres | postgres
(1 row)

SQL>postgres@ postgres 16:23:17=#set PROMPT1 '%/%R%# '
postgres=#

备注:更改成我们熟悉的默认形式了,看起来舒服多了,再来看看其它的设置。

显示用户名和主机名

1
2
3
4
5
6
[pg92@redhatB ~]$ psql -h 192.168.1.36
psql (9.2.1)
Type "help" for help.

postgres=# set PROMPT1 '%n@%M %~%R%# '
postgres@192.168.1.36 ~=#

备注:可以根据自己的喜好调整输出的内容,我个人还是偏好默认的设置。

参考

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/237989.html

(0)
上一篇 2022年1月29日
下一篇 2022年1月29日

相关推荐

发表回复

登录后才能评论