Name
initdb -- 创建一个新的
PostgreSQL
数据库集群
Synopsis
initdb
--pgdata | -D
directory
[--username | -U
username
] [--pwprompt | -W] [--encoding | -E
encoding
] [-L
directory
] [--noclean | -n] [--debug | -d]
描述
initdb
创建一个新的
PostgreSQL
数据库集群(或数据库系统).
一个数据库集群是由单个服务器实例管理的数据库集合.
创建数据库系统包括创建数据库数据的宿主目录,
生成共享的系统表(不属于任何特定数据库的表)和创建
template1
数据库.当你创建一个数据库时,
template1
数据库里所有内容都会拷贝过来。
它包括填充了象内建类型这样的系统表.
initdb
而是必须以运行数据库服务器进程的
用户身份运行它.
因为服务器需要能够访问
initdb
创建的文件和目录。
因为服务器不能以 root 身份运行,所以你也不能以 root 身份运行
initdb
.(实际上它拒绝以 root 身份运行.)
尽管
initdb
会尝试创建相应的数据目录,
但经常会发生它没有权限做这些事情的情况。因为所需要的目录的父目录
通常是 root 所有的目录.要为此安排做一个设置,用 root 创建一个空
数据目录,然后用
chown
把该目录的
所有权交给数据库用户帐号,然后
su
成数据库用户,最后以数据库用户身份运行
initdb
.
选项
-
--pgdata=
directory
-D
directory
-
这个选项声明数据库系统应该存放在哪个目录。
这是
initdb
需要的唯一信息,但是你可以通过设置
PGDATA
环境变量来避免键入,
这样做可能方便一些,因为稍后数据库服务器(
postmaster
)可以通过同一个变量找到数据库目录。
-
--username=
username
-U
username
-
选择数据库超级用户的用户名.
缺省是运行
initdb
的用户的有效用户。
超级用户的名字是什么并不重要,
但是我们可以选择习惯的名字
"postgres"
,即使操作系统的
用户名字不一样也无所谓.
-
--pwprompt
-W
-
令
initdb
提示输入数据库超级用户的口令。
如果你不准备使用口令认证,这个东西并不重要。
否则你将不能使用口令认证直到你设置了口令。
-
--encoding=
encoding
-E
encoding
-
选择模板数据库的编码方式。这将是你以后创建的数据库的缺省编码方式,
除非你创建数据库时覆盖了它。
要使用编码特性,你必须在制作的时候声明,
那时你还要为这个选项选择缺省值。
其他不常用的参数还有:
-
-L
directory
-
告诉
initdb
到哪里找初始化数据库所需要的输入文件.
通常是不必要的.如果需要你明确声明的话,程序会提示你输入.
-
--noclean
-n
-
缺省时,当
initdb
发现一些错误妨碍它完成创建数据库系统的工作时,
它将在检测到不能结束工作之前将其创建的所有文件删除.
这个选项禁止任何清理动作,因而对调试很有用.
-
--debug
-d
-
打印引导后端上的调试输出和一些其他普通用户不太感兴趣的信息。
初始后端是
initdb
用于创建目录表的进程.这个选项生成一大无聊的堆输出.
环境
-
PGDATA
-
声明数据库系统存储的目录;可以用
-D
选项覆盖.
|