【问题标题】:Saving PostgreSQL database to an external HDD将 PostgreSQL 数据库保存到外部硬盘
【发布时间】:2021-04-28 16:12:17
【问题描述】:

我需要将数据库保存到外部硬盘。这个问题之前已经问过here。但是,将/usr/local/var/postgres/ 中存在的postgresql.conf 文件中的data_directory 变量更改为

data_directory = /path/to/externalHDD/directory/

然后我使用brew services restart postgresql 重新启动 PostgreSQL 服务器,但是当我尝试通过重新连接到数据库时

psql -U username -d postgres

我收到以下错误:

psql: error: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我该如何解决这个问题?

【问题讨论】:

  • 信息太少。请告诉我们您采取的所有步骤。您是如何移动数据目录等的。
  • 你启动数据库服务器了吗?它运行吗?请检查日志文件。
  • @LaurenzAlbe 我在/usr/local/var/postgres/ 中存在的postgresql.conf 文件中将指定数据目录data_directory 的变量更改为data_directory = /path/to/externalHDD/directory/。我在 MacOS 上,使用 Homebrew 进行安装,因此我使用命令 brew services restart postgresql 重新启动了 PostgreSQL 服务器。然后我运行psql -U username -d postgres,错误随之而来。还有什么我应该专门扩展的吗?
  • @FrankHeikens 是的,我使用上述brew 命令重新启动了它。如何找到日志文件?
  • 我的意思是在查询中添加附加信息...

标签: postgresql


【解决方案1】:

如果您所做的只是将data_directory 指向其他地方,那将无法正常工作,因为目的地没有数据目录。您必须使用initdb 创建数据目录。

【讨论】:

  • 对不起,我对 PostgreSQL 几乎是全新的。如何使用initdb 创建数据目录?从this 文档看来,initdb [option...] [--pgdata | -D] directory 中指定的directory 参数应该是外部硬盘上的所需目录,然后将data_directory 指向同一目录?
  • 是的,差不多。然后postgresql.conf 将位于原始位置,以及外部磁盘上的数据目录。但是您也可以使用新的数据目录作为pg_ctl start -D 的参数(如果您是这样开始的)并在那里使用postgresql.conf。如果这一切都令人困惑,我理解。您或许应该阅读一些 PostgreSQL 文档并熟悉 initdbpg_ctl
猜你喜欢
  • 2016-07-04
  • 2011-08-15
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2021-01-30
  • 2010-11-29
  • 1970-01-01
相关资源
最近更新 更多