Provided by: manpages-zh_1.5.2-1_all bug

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@pgsqldb.org>