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