在Ubuntu中更改PostgreSQL数据目录

16

可能是重复问题:
Postgresql启动失败

这个问题一直困扰我,但似乎没有任何方法能解决。我需要更改postgresql存储数据库的位置。当涉及到在终端使用命令时,我完全是一个新手,带有适当命令的步骤说明会非常有帮助。我已经在整个网络上搜索过了,但所有说明都假设用户具有一定的终端命令知识。我曾尝试通过在主数据文件夹中创建符号链接来解决问题,但这只是导致出现错误,并要求我检查日志文件。但是,我不知道日志文件在哪里。许多人似乎都有这个问题,所以一步一步的解决方案肯定会有所帮助。我的Psql版本是8.4。Ubuntu 10.10。


您是否有需要移动的现有内容,或者正在考虑使用干净的空实例? - Daniel Vérité
也是一个重新发布的http://stackoverflow.com/questions/11562590/postgresql-failed-to-start 与编程有关的内容。 - Craig Ringer
我在DBA上删除了这个问题。@Amitash,如果你再像这样交叉发布,可能会有后果。不要这样做。 - JNK
1个回答

27

最新的日志文件完整路径是/var/log/postgresql/postgresql-8.4-main.log,但符号链接不是更集成/更易于改变数据位置的方式。

我建议使用debian/ubuntu postgres软件包中附带的pg_createcluster命令,在所需位置创建整个集群。

1- 如果当前集群不包含任何先前数据,请删除它:

$ sudo pg_dropcluster --stop 8.4 main

2- 在新位置创建一个新的集群

$ sudo pg_createcluster -d /path/to/new/location 8.4 main

3- 重新启动postgresql

$ sudo /etc/init.d/postgresql start

4
群集删除完美。当我尝试在我的第二个硬盘上创建一个新的群集时,它显示“initdb权限被拒绝”。因此,我在我的文件夹上对我的用户进行了chown更改,这很好地解决了问题。当我再次尝试时,仍然遇到相同的错误。这可能是因为我正在尝试在已挂载的驱动器而不是我的Ubuntu根安装驱动器中创建该群集吗? - Amitash
1
创建新的集群(配置:/etc/postgresql/8.4/main,数据:/media/New Volume/Virulence/data)... 无法更改目录到“/media/New Volume/Virulence” initdb:无法访问目录“/media/New Volume/Virulence/data”:权限被拒绝 错误:initdb 失败 - Amitash
1
@Amitash:当使用 sudo 执行时,pg_createcluster 应该自行修复目录和权限。 但是:如果您谈论 /media 路径:这是可移动设备吗? 它是否是 FAT 或 NTFS 文件系统?然后权限将无法工作。 - A.H.
看起来文件夹的权限不允许 postgres 用户进入该目录。请确保路径中的所有目录都为其他用户设置了“x”位(例如,rwxr-xr-x 是好的,rwx------ 不好)。如果您不知道如何微调,请执行 chmod -R 755 /media - Daniel Vérité
1
@Amitash 像“它是NTFS格式并在Windows中创建的”这样的信息是相当重要的。请发布详细的问题,以节省每个人询问您每个细节的时间。 - Craig Ringer
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接