要檢視您是否可以訪問資料庫伺服器,首先要嘗試建立一個數據庫。一個正在執行的 PostgreSQL 伺服器可以管理多個數據庫。通常,每個專案或每個使用者使用一個單獨的資料庫。
您的站點管理員可能已經為您建立了一個數據庫。如果是這樣,您可以跳過此步驟,直接進入下一節。
要從命令列建立新資料庫(本例中名為 mydb
),請使用以下命令:
$
createdb mydb
如果沒有任何響應,則表示此步驟成功,您可以跳過本節的其餘部分。
如果您看到類似的訊息:
createdb: command not found
則表示 PostgreSQL 未正確安裝。要麼根本沒有安裝,要麼您的 shell 的搜尋路徑未設定為包含它。請嘗試使用絕對路徑呼叫命令:
$
/usr/local/pgsql/bin/createdb mydb
您所在站點的路徑可能不同。請聯絡您的站點管理員或檢視安裝說明來糾正這種情況。
另一個可能的響應是:
createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory Is the server running locally and accepting connections on that socket?
這意味著伺服器未啟動,或者它監聽的埠不是 createdb
期望與之通訊的埠。再次檢查安裝說明或諮詢管理員。
另一個可能的響應是:
createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "joe" does not exist
其中提到了您的登入名。如果管理員未為您建立 PostgreSQL 使用者帳戶,就會發生這種情況。(PostgreSQL 使用者帳戶與作業系統使用者帳戶是分開的。)如果您是管理員,請參閱 第 21 章 來建立帳戶。您需要切換到安裝 PostgreSQL 的作業系統使用者(通常是 postgres
)來建立第一個使用者帳戶。也可能是為您分配了一個與您的作業系統使用者名稱不同的 PostgreSQL 使用者名稱;在這種情況下,您需要使用 -U
開關或設定 PGUSER
環境變數來指定您的 PostgreSQL 使用者名稱。
如果您擁有使用者帳戶但該帳戶沒有建立資料庫所需的許可權,您將看到以下內容:
createdb: error: database creation failed: ERROR: permission denied to create database
並非所有使用者都有權建立新資料庫。如果 PostgreSQL 拒絕為您建立資料庫,那麼站點管理員需要授予您建立資料庫的許可權。如果發生這種情況,請諮詢您的站點管理員。如果您自己安裝了 PostgreSQL,那麼在本教程中,您應該使用啟動伺服器的那個使用者帳戶登入。 [1]
您也可以建立其他名稱的資料庫。PostgreSQL 允許您在一個站點上建立任意數量的資料庫。資料庫名稱的第一個字元必須是字母,並且長度限制為 63 位元組。一個方便的選擇是建立與您當前使用者名稱同名的資料庫。許多工具預設使用該資料庫名,因此可以節省您的輸入。要建立該資料庫,只需輸入:
$
createdb
如果您不再需要使用某個資料庫,可以將其刪除。例如,如果您是資料庫 mydb
的所有者(建立者),可以使用以下命令將其銷燬:
$
dropdb mydb
(對於此命令,資料庫名不會預設使用使用者帳戶名。您必須始終指定它。)此操作會物理刪除與資料庫相關的所有檔案,且無法撤銷,因此只能經過深思熟慮後執行。
有關 createdb
和 dropdb
的更多資訊,請分別參閱 createdb 和 dropdb。
[1] 解釋為何如此:PostgreSQL 使用者名稱與作業系統使用者帳戶是分開的。連線資料庫時,您可以選擇連線的 PostgreSQL 使用者名稱;如果未選擇,則預設使用與您當前作業系統帳戶相同的名稱。碰巧的是,總會有一個 PostgreSQL 使用者帳戶,其名稱與啟動伺服器的作業系統使用者名稱稱相同,而且該使用者也始終擁有建立資料庫的許可權。您也可以不登入為該使用者,而是在所有地方使用 -U
選項來選擇一個 PostgreSQL 使用者名稱進行連線。
如果您在文件中發現任何不正確之處、與您在使用特定功能時的體驗不符之處,或需要進一步澄清的地方,請使用 此表單 來報告文件問題。