Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在Ubuntu 13.04上更改Postgresql中的数据目录_Database_Postgresql_Ubuntu - Fatal编程技术网

Database 如何在Ubuntu 13.04上更改Postgresql中的数据目录

Database 如何在Ubuntu 13.04上更改Postgresql中的数据目录,database,postgresql,ubuntu,Database,Postgresql,Ubuntu,在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/po

在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
我应该提到的是,我检查了权限,尝试手动创建目录,并在之后向用户postgres发送“chowning”,等等。没有任何更改权限被拒绝的消息

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


我如何使这项工作正常进行?

我找到了一个可行的解决方案,但不是真正的解决方案:

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

sudo pg_createcluster -d /home/postgresqldata/ 9.1 main

一切都如期进行

它不仅仅是目标目录。为了遍历路径,路径上的任何目录都必须为“其他”设置“x”位(除非它本身属于postgres)。你检查过了吗?谢谢,请看下面我的解决方法。它可能与x位有关,但我没有检查。无论如何,将postgres数据保存在主文件夹中可能不是最好的方法。。。否则,如果您需要在主文件夹中创建数据文件夹,则必须检查postgres用户是否对您的用户目录具有执行权限(默认情况下不是这样),因此,当您使用sudo执行脚本时,它可能会放弃特权并尝试使用“postgres”用户访问目录,因为它是传递给pg_createcluster中init_db子例程的默认owneruid和ownergid-检查github中的源代码