Provided by:
manpages-zh_1.5.1-1_all 
NAME
initdb - 創建一虓s的 PostgreSQL數據庫集群
SYNOPSIS
initdb [ option... ] --pgdata | -D directory
DESCRIPTION yz
initdb 創建一虓s的 PostgreSQL 數據庫集群。 一蚍畬w集群是由單-
茼曭A器實例管理的數據庫集合。
創建數據庫系統包括創建數據庫數據的宿主目錄,
生成共享的系統表(不屬於任何特定數據庫的表)和創建 template1
數據庫。當你以後再創建一虓s數據庫時, template1
數據庫裏所有內容都會拷貝過來。 它包括填充了像內建類型這樣的系統表。
initdb 初始化該數據庫集群的預設區域和字符集編碼。 有些區域-
S疇對該集群而言是全生命期固定的,因此在運行 initdb 的時-
埥翵正確的是非常南的。 其它區域S疇可以在伺服器啟動之後的時間裏改變。
initdb 將把那些區域設置寫到 postgresql.conf 配置檔案,這樣它-
抴N是預設的, 但是我怚i以通過編輯那些檔案來蚹鴷米。 n設置 initdb
使用的區域,參 --locale 選項的描z。字符集編碼可以在數據庫創建的時-
埥W立設置。 initdb 決定 template1
數據庫的編碼,而該編碼將成為所有其它數據庫的預設。 n蚹儮w設編碼,我-
怚i以使用 --encoding 選項。
initdb 必須以運行數據庫伺服器進程的使用者言鷞B行它。 因為伺服器需-
n能夠訪問 initdb 創建的檔案和目錄。 因為伺服器不能以 root -
份運行,所以你也不能以 root 言鷞B行 initdb。(實際上它拒絕以 root -
份運行。)
儘管initdb會嘗試創建相應的數據目錄, 但經常會發生它沒有權-
做這些事情的情況。因為所需n的目錄的父目錄通常是 root 所有的目錄。
n為此安排做一茬]置,用 root 創建一茠髒琤媬, 然後用 chown
把該目錄的所有權交給數據庫使用者帳號, 然後 su
成數據庫使用者,最後以數據庫使用者言鷞B行 initdb。
OPTIONS項
-D directory
--pgdata=directory
這蚇龠聒n明數據庫集群應該存放在茈媬。 這是initdb需-
n的唯一信息,但是你可以通過設置 PGDATA 環境變量來避免鍵入,
這樣做可能方便一些,因為稍後數據庫伺服器(postmaster)可以通過同一-
蚥僆q找到數據庫目錄。
-E encoding
--encoding=encoding
選擇模板數據庫的編碼方式。這將是你以後創建的數據庫的預設編碼方式,
除非你創建數據庫時覆誘F它。 預設是 SQL_ASCII。
--locale=locale
為數據庫集群設置預設的區域。如果沒有聲明這蚇龠窗A那麼區域 是從
initdb 運行的環境中繼承過來的。
--lc-collate=locale
--lc-ctype=locale
--lc-messages=locale
--lc-monetary=locale
--lc-numeric=locale
--lc-time=locale
類似 --locale,但是只設置特殊S疇的區域。
-U username
--username=username
選擇數據庫超級使用者的使用者名。 預設是運行 initdb
的使用者的有效使用者。 超級使用者的名字是什麼並不南, 但是我-
怚i以選擇習慣的名字
postgres,即使作業系統的使用者名字不一樣也無所謂。
-W
--pwprompt
令 initdb 提示輸入數據庫超級使用者的口令。
如果你不準備使用口令認証,這茠F西並不南。
否則你將不能使用口令認証直到你設置了口令。
其他不常用的參數還有:
-d
--debug
從初始化後端列印調試輸出以及一些其它的一些普通使用者不太感興趣的信息。
初始化後端是 initdb 用於創建系統表的程式。 這-
蚇龠等穻角j量非常煩人的輸出。
-L directory
告訴 initdb 到裏找初始化數據庫所需n的輸入檔案。 通常是不必-
n的。如果需n你明確聲明的話,程式會提示你輸入。
-n
--noclean
預設時,當initdb
發現一些錯誤妨礙它完成創建數據庫集群的工作時,
它將在檢測到不能結束工作之前將其創建的所有檔案刪除。 這-
蚇龠絡T止任何清理動作,因而對調試很有用。
ENVIRONMENT境
PGDATA 聲明數據庫集群存儲的目錄;可以用 -D 選項覆說C
SEE ALSO見
postgres(1), postmaster(1)
者
Postgresql <laser@pgsqldb.org>