保存psql历史记录文件时出错

时间:2018-01-16 05:15:12

标签: postgresql psql postgresql-9.3

我当前的psql版本是10.1, 但是当我输入\q来保存它显示的历史记录时:

  

postgres =#\ q无法将历史记录保存到文件“/opt/PostgreSQL/9.3/.psql_history”:没有这样的文件或目录

但我正在使用 Postgres 10.1 ,如何解决此问题?

1 个答案:

答案 0 :(得分:1)

psql如何确定历史文件的路径documented为:

  

<强> HISTFILE

     

将用于存储历史记录列表的文件名。如果未设置,则文件名取自PSQL_HISTORY环境   变量。如果没有设置,则默认为〜/ .psql_history,   或Windows上的%APPDATA%\ postgresql \ psql_history

您必须知道psql不使用HOME来确定由tidle字符表示的主目录,它使用/etc/passwd

因此,问题psql可能是由postgres用户启动的,当创建此用户时,就是在这台机器上安装PostgreSQL 9.3,之后/opt/PostgreSQL/9.3/没有更改/etc/passwd 1}}被删除,因此sudo usermod --home '/path/to/database' postgres 中的条目仍然指向该不存在的目录。

This answer on DBA.se给出shell命令来解决这个问题:

git branch new_branch