安装postgresql。为什么initdb不可用?


15

我正在按照这些说明进行操作,但是只能进入步骤17.2。

尽管通过成功安装了postgresql

sudo apt-get install postgresql

命令,运行时

initdb -D /usr/local/pgsql/data

Ubuntu告诉我未安装“ initdb”。说明告诉我此命令是由安装的

sudo apt-get install postgresql

发生什么了?我可以通过安装postgres-xc使initdb可用,但是我认为postgres-xc只是一些奇怪的第三方垃圾,在说明中没有详细说明。有任何想法吗?

Answers:


14

initdb旨在在安装过程中创建的postgres用户帐户下运行。安装postgresql后,您可以执行以下操作:

sudo su - postgres

然后,您应该可以运行了initdb


4
从/usr/share/doc/postgresql-common/README.Debian.gz引用:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr 2014年

3
即使切换到postgres用户,我仍然会收到此错误
Cogwheel

在使用Postgres 9.6的Ubuntu Server 14中,这对我不起作用。
sudo

由于initdb位于中,因此不起作用/usr/lib/postgresql/X.X/bin/
李栋

27

您会在initdb下面找到/usr/lib/postgresql/x.y/bin/。另请参阅/usr/share/doc/postgresql-common/README.Debian.gz以获取有关在Debian和Ubuntu上进行安装的更多信息。


这确实应该是公认的答案。 initdb是基本命令,但Debian和Ubuntu用户应使用pg_createcluster及其相关命令集。此外,由于标准安装已经为您创建了一个包含服务器和默认/模板数据库的默认集群,因此通常不需要执行initdbOR操作。Peter上面提到的自述文件值得您花时间阅读。pg_createclusterapt-get install postgresql
cdaddr 2014年

2
@cdaddr不,安装postgres后通常不需要它。不过,如果您发现自己需要快速重新创建集群并且不想麻烦重新安装postgres,或者如果您需要在非标准位置初始化新数据库,这可能会派上用场。是的,这是一个很好的答案。
Erathiel 2015年

1
作品。这是最好的,因为这样可以确定我使用的是哪个版本。
sudo

我们正在搜索initdb,因为,教程说,所以postgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdb未作为用户可执行文件安装。仅安装在中/usr/lib/postgresql/X.X/bin/,因为它始终取决于版本。initdb只能从该特定目录执行。

如其他答案所述,postgres的安装会创建一个默认目录,该目录可能位于有限的分区中。用户可能想要更改此设置,但是它还需要其他步骤。看这里


-2

从root 1.passwd postgres输入密码,然后从2.su postgres 3.psql输入以下步骤。4.创建用户名的用户,例如“ CREATE USER SAM;”。5.创建数据库sam; 现在注销6.type psql给您的用户


这个答案根本没有直接解决这个问题。
cdaddr 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.