【问题标题】:Error saving psql history file保存 psql 历史文件时出错
【发布时间】:2018-06-24 18:21:25
【问题描述】:

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

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

但我使用的是 Postgres 10.1,如何解决这个问题?

【问题讨论】:

标签: postgresql psql postgresql-9.3


【解决方案1】:

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

历史文件

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

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

所以想必问题中psqlpostgres用户发起的,而这个用户在创建的时候是为了在这台机器上安装PostgreSQL 9.3,后来/opt/PostgreSQL/9.3/被删除的时候并没有改变,所以/etc/passwd 中的条目仍然指向那个不存在的目录。

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

sudo usermod --home '/path/to/database' postgres

【讨论】:

  • 该问题与 help center 中定义的 Stack Overflow 无关。请不要回答此类问题;相反,您应该标记它们以引起注意,它们将被适当地关闭或迁移。
  • @TobySpeight:我不同意这种描述。这个问题是关于psql,它在 S.O. 上有自己的标签。拥有 460 多个关注者和 1,6k 个问题,对我来说属于 stackoverflow.com/help/on-topic 中提到的程序员常用的软件工具类别
  • 我很惊讶有这么多关于数据库查询工具而不是编程工具的问题。也许不止一些是关于在程序中使用psql 的?无论哪种方式,我想与人群争论是没有意义的,无论他们多么错误......
猜你喜欢
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 2015-02-20
  • 2010-11-01
  • 1970-01-01
  • 2011-03-31
相关资源
最近更新 更多