2010-11-22 88 views
0

SQL分发预初始化的目录集群,但对于postgresql,我们需要使用initdb和网络服务帐户初始化集群。它在少数情况下失败并导致一点痛苦!Postgresql集群初始化

可以自己初始化集群并分发预初始化的集群?

感谢

+0

你有关于它失败的更多信息吗?你看到任何错误信息吗? – bernie 2010-11-22 22:47:00

+0

好随机的东西。 postgre用户需要访问根等8点3问题。我们不想改变,因为客户不喜欢这样。这就是为什么我想分配预先初始化的集群。想要有一些想法。 – user507779 2010-11-23 03:17:38

+0

如果你正在讨论像pg_cluster类型命令一样的debian/ubuntu功能,是的,它们需要是root才能执行。 OTOH,initdb不需要由root运行,这样如果你在用户joe的当前目录中,你可以运行initdb -D/home/joe/mydb来创建一个集群。 – 2010-11-23 03:54:23

回答

0

很难理解你的问题,但我认为你是在谈论Windows安装PostgreSQL的。对?什么版本,什么安装程序,错误消息,日志记录等?

安装程序可以找到here

SQL =数据库语言,SQL服务器 = 微软数据库产品

1

的 “簇”(或数据目录)取决于操作系统和架构上。因此,在32位Linux上使用initdb初始化的数据目录在64位Windows上不起作用。

但你不需要那样做。如果您想将PostgreSQL作为服务运行,则只需要一个服务帐户。

您可以轻松使用ZIP分发版安装并启动Postgres,而不需要安装完整安装或服务帐户。

这样做的步骤是:

  1. 解压二进制文件
  2. 运行initdb的它指向数据库集群应该被创建的目录。
  3. 运行pg_ctl启动服务器。

请注意,步骤2)和3)必须使用相同的用户运行,否则服务器将无权写入数据目录。

这些步骤可以很容易地放到批处理文件或shell脚本中。