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