Manpages

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 [AT] pgsqldb.org>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh