Provided by: manpages-zh_1.5.2-1.1_all bug

NAME

       initdb - 创建一个新的 PostgreSQL数据库集群

SYNOPSIS

       initdb [ option... ]  --pgdata  | -D directory

DESCRIPTION 描述

       initdb 创建一个新的 PostgreSQL 数据库集群。 一个数据库集群是由单个服务器实例管理的数据库集
       合。

        创建数据库系统包括创建数据库数据的宿主目录,     生成共享的系统表(不属于任何特定数据库的
       表)和创建  template1  数据库。当你以后再创建一个新数据库时, template1 数据库里所有内容都
       会拷贝过来。 它包括填充了象内建类型这样的系统表。

       initdb  初始化该数据库集群的缺省区域和字符集编码。  有些区域范畴对该集群而言是全生命期固定
       的,因此在运行  initdb 的时候选取正确的是非常重要的。 其它区域范畴可以在服务器启动之后的时
       间里改变。 initdb 将把那些区域设置写到 postgresql.conf 配置文件,这样它们就是缺省的, 但是
       我们可以通过编辑那些文件来修改它们。  要设置  initdb  使用的区域,参阅  --locale  选项的描
       述。字符集编码可以在数据库创建的时候独立设置。 initdb 决定 template1  数据库的编码,而该编
       码将成为所有其它数据库的缺省。 要修改缺省编码,我们可以使用 --encoding 选项。

       initdb  必须以运行数据库服务器进程的用户身份运行它。 因为服务器需要能够访问 initdb  创建的
       文件和目录。 因为服务器不能以 root 身份运行,所以你也不能以 root 身份运行 initdb。(实际上
       它拒绝以 root 身份运行。)

        尽管initdb会尝试创建相应的数据目录, 但经常会发生它没有权限做这些事情的情况。因为所需要的
       目录的父目录通常是 root 所有的目录。 要为此安排做一个设置,用 root 创建一个空数据目录, 然
       后用 chown 把该目录的所有权交给数据库用户帐号, 然后 su 成数据库用户,最后以数据库用户身份
       运行 initdb。

OPTIONS 选项

       -D directory

       --pgdata=directory
               这个选项声明数据库集群应该存放在哪个目录。  这是initdb需要的唯一信息,但是你可以通
              过设置    PGDATA    环境变量来避免键入,   这样做可能方便一些,因为稍后数据库服务器
              (postmaster)可以通过同一个变量找到数据库目录。

       -E encoding

       --encoding=encoding
               选择模板数据库的编码方式。这将是你以后创建的数据库的缺省编码方式,  除非你创建数据
              库时覆盖了它。 缺省是 SQL_ASCII。

       --locale=locale
               为数据库集群设置缺省的区域。如果没有声明这个选项,那么区域  是从 initdb 运行的环境
              中继承过来的。

       --lc-collate=locale

       --lc-ctype=locale

       --lc-messages=locale

       --lc-monetary=locale

       --lc-numeric=locale

       --lc-time=locale
               类似 --locale,但是只设置特殊范畴的区域。

       -U username

       --username=username
               选择数据库超级用户的用户名。 缺省是运行 initdb 的用户的有效用户。 超级用户的名字是
              什么并不重要,  但是我们可以选择习惯的名字 postgres,即使操作系统的用户名字不一样也
              无所谓。

       -W

       --pwprompt
               令 initdb 提示输入数据库超级用户的口令。  如果你不准备使用口令认证,这个东西并不重
              要。 否则你将不能使用口令认证直到你设置了口令。

        其他不常用的参数还有:

       -d

       --debug
               从初始化后端打印调试输出以及一些其它的一些普通用户不太感兴趣的信息。  初始化后端是
              initdb 用于创建系统表的程序。 这个选项生成大量非常烦人的输出。

       -L directory
               告诉 initdb  到哪里找初始化数据库所需要的输入文件。 通常是不必要的。如果需要你明确
              声明的话,程序会提示你输入。

       -n

       --noclean
               缺省时,当initdb   发现一些错误妨碍它完成创建数据库集群的工作时, 它将在检测到不能
              结束工作之前将其创建的所有文件删除。 这个选项禁止任何清理动作,因而对调试很有用。

ENVIRONMENT 环境

       PGDATA
               声明数据库集群存储的目录;可以用 -D 选项覆盖。

SEE ALSO 参见

       postgres(1), postmaster(1)

译者

       Postgresql 中文网站 何伟平 <laser@pgsqldb.org>