我在我的 Fedora 16 上安装了 PostgreSQL 9.1.2,方法与上述类似这里,并对其进行了测试,这意味着我的安装运行正常。
但是当我这样做时:service postgresql initdb
甚至service postgresql-9.0 initdb
我收到错误:
Redirecting to /bin/systemctl initdb postgresql.service
Unknown operation initdb
因此,我无法启动 pgAdmin3。
我错过了什么?
答案1
在已将 postgres 转换为使用本机systemd
单位的系统上,您需要使用postgresql-setup
诸如 之类的东西initdb
。因此,您想要的是:
postgresql-setup initdb
答案2
运行“su - postgres -c ...”命令以 root 身份
我在这里找到了答案:https://bugzilla.redhat.com/show_bug.cgi?id=771496
问题描述:首次安装 postgresql 服务器 rpm 后,您将无法启动服务,除非您以 root 身份运行以下命令
su-postgres-c“initdb-D/var/lib/pgsql/data”
所选组件的版本-发布号(如果适用):
[root@oscar]# rpm -q postgresql-server postgresql-server-9.1.2-1.fc16.x86_64
可重复性:始终
背景故事
有好几个地方都建议我在 Fedora 16 上使用此命令,而不是按照之前的说明操作(新命令:su - postgres -c "PGDATA=/var/lib/pgsql/data initdb" ),但看到前面有“su”后,我以为运行该命令时它会将我切换到 root 权限。它一直提示我输入密码,但什么都没用。
我尝试了 root 密码、我自己的密码(就像 sudo 一样)、“postgres”和“pgsql”,以防万一我应该以 postgres 用户身份执行此操作,甚至将密码留空。我尝试 su 为 root,然后运行不带初始“su -”的命令(以“postgres -c ...”开头),但这也出错了,告诉我:
“必须在非特权用户 ID 下启动服务器,以防止可能的系统安全受到威胁。有关如何正确启动服务器的更多信息,请参阅文档。”
最后,我尝试以 root 身份运行完整命令“su - postgres -c ...”,但仍然使用“su”,哇哦,成功了。现在服务启动了。感谢 Redhat 错误跟踪!
概括
su 到 root,然后输入:
su - postgres -c “PGDATA=/var/lib/pgsql/data initdb”
答案3
您需要使用以下命令启动postgresql服务:
service postgresql start
仅当您需要初始化数据库服务器的数据目录时才应使用该工具,并且当您使用centos 或ubuntuinitdb
等包管理器安装 postgresql 服务器时,此操作应该自动完成。yum
apt-get
您可以按照您提供的链接所示使用它:
initdb -D /usr/local/pgsql/data
答案4
这个回答有点晚了,但可能对某些人有帮助...在 Fedora 18 上,使用 postgresql 9.2,我最终不得不将 /usr/pgsql-9.2/bin 添加到我的 shell 中的 PATH 中,然后我必须运行:
postgresql92-setup initdb
以便获取配置文件和 /var/lib/pgsql/9.2/data 中的所有内容。希望这对其他人有帮助!