【问题标题】:How to change the Data directory in Postgresql on Ubuntu 13.04如何在 Ubuntu 13.04 上更改 Postgresql 中的数据目录
【发布时间】:2013-04-15 12:08:21
【问题描述】:

我在 ubuntu 13.04 上更改 postgresql 9.1 上的数据目录时遇到问题:

我先做了一个:

sudo pg_dropcluster --stop 9.1 main

然后尝试在所需路径中创建一个新路径:

 sudo pg_createcluster -d /home/fccoelho/Documentos/databases/postgresqldata 9.1 main

但我因权限被拒绝而失败:

Creating new cluster (configuration: /etc/postgresql/9.1/main, data: /home/fccoelho/Documentos/databases/postgresqldata/)...
initdb: could not access directory "/home/fccoelho/Documentos/databases/postgresqldata": Permission denied
Error: initdb failed

我应该提一下,我检查了权限,尝试手动创建目录并在之后“chowning”给用户 postgres 等等。没有任何改变权限被拒绝的消息。

我也尝试使用与 POstgresql 一起分发的 initdb 二进制文件,但没有成功

我该如何进行这项工作?

【问题讨论】:

  • 不只是目标目录。为了遍历路径,路径上的任何目录都必须为“others”设置“x”位(除非它自己属于 postgres)。你检查过吗?
  • 谢谢,请参阅下面的解决方法。可能和x位有关,但我没查过。

标签: database postgresql ubuntu


【解决方案1】:

我找到了解决方法,但不是真正的解决方案:

我发现我无法在我的主树中维护数据目录,所以我创建了一个新目录 /home/postgresqldata/ 并运行:

sudo pg_createcluster -d /home/postgresqldata/ 9.1 main

一切都按预期进行!

【讨论】:

  • 无论如何将 postgres 数据保存在您的主文件夹中可能不是最好的方法...否则如果您需要在主文件夹中创建数据文件夹,您必须检查 postgres 用户是否具有执行权限在您的用户目录上(默认情况下不是这种情况),因此当您使用 sudo 执行脚本时,它可能会放弃权限并尝试使用“postgres”用户访问该目录,因为它是传递给 init_db 子的默认 owneruid 和 ownergid -pg_createcluster 中的例程 - 检查 github 中的源代码
猜你喜欢
  • 2012-07-21
  • 2017-04-23
  • 2021-12-31
  • 2012-11-26
  • 2023-03-11
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多