概括

概括

我在我的 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 服务器时,此操作应该自动完成。yumapt-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 中的所有内容。希望这对其他人有帮助!

相关内容