psql客户端历史记录保存在哪里?(〜/ .psql_history不存在!)

Ben*_*ey4 33 postgresql psql

在我的psql提示符中可以看到密码(通过向上推箭头查看以前输入的命令).所以我想从psql客户端删除该条目.

其他资源(1,2)声称,PSQL客户历史记录保存在一个~/.psql_history文件,但这个文件是根本不存在.(它不在.bash_history任何一个)

所以必须有另一个文件,其中保存psql提示的历史记录,任何想法在哪里?

注意:我正在努力 Ubuntu 12.04

a_h*_*ame 42

当你使用:

sudo -u postgres psql my_db
Run Code Online (Sandbox Code Playgroud)

你运行psql作为(Linux)用户postgres,因此该.psql_history文件位于postgres用户的主目录(例如/home/postgres/.psql_history)中,而不是在您最初登录的用户的主目录中.

在某些安装中,postgres用户主目录的位置是/var/lib/postgresql.您可以通过运行来检查:

grep postgres /etc/passwd | cut -d ':' -f 6
Run Code Online (Sandbox Code Playgroud)

  • 作为将来的参考:您可以通过执行 `sudo su postgres` 切换到 `postgres` 用户名,然后执行 `cat ~/.psql_history`。但是,如果您执行`~postgresql` 并点击选项卡(波浪号扩展),您甚至不需要切换用户,然后它会扩展到`/var/lib/postgresql/`。`.psql_history` 文件也位于后一个目录中。 (3认同)

Dan*_*ité 11

文件名由名为的内部变量给出 HISTFILE.从技术上讲,它不一定是~/.psql_history.

检查~/.psqlrc文件以获取备用设置.例如,它可能是:

\设置HISTFILE~/.psql_history-:DBNAME

如每个数据库历史记录文件的手册中所述.