我决定在 Fedora 20 上运行 PostgreSQL,所以我这样做了
sudo yum install postgresql-server.x86_64 postgresql-libs.x86_64 postgresql.x86_64
现在,如果我postgres -D /var/lib/pgsql/data
在普通用户下执行此操作,我会收到Permission denied for "/var/lib/pgsql/data/postgresql.conf"
,如果我在 root 下尝试执行此操作,我会收到一些错误,提示我不应该在特权用户下运行 postgres。
我理解这两个错误,但现在它变得很奇怪 -sudo -u postgres postgres -D /var/lib/pgsql/data
给出我遗漏的错误postgresql.conf
- 如果我以 root 身份创建它(因为 root 拥有该目录),它会在启动期间再次抱怨权限。如果我尝试运行initdb -D /var/lib/pgsql/data
它,它也不会工作,因为如果权限不正确(目录归 root 所有)。
所以我真的不知道我应该做什么,我做错了什么吗?因为里面的所有内容/var/lib/
都归 root 所有,而且它是 Fedora 中配置的默认位置(至少对于 postgres 来说),所以在我看来这真的很混乱。
答案1
阅读/usr/share/doc/postgresql/README.rpm-dist
,它涵盖了设置。特别是,它告诉你要创建数据目录,你必须运行:
postgresql-setup initdb
如果你使用的是来自http://yum.postgresql.org/而不是普通的 Red Hat,它应该是:
/usr/pgsql-9.3/bin/postgresql93-setup initdb
我目前正在研究如何改进官方 PostgreSQL 文档,以便那些从 Fedora 的 RPM 或 Ubuntu 软件包等常用软件包安装 PostgreSQL 的人可以更轻松地使用它。目前它过于专注于源安装。