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 参 见
译 者
Postgresql 中 文 网 站 何 伟 平 <laser [AT] pgsqldb.org>
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh