測試您是否可以存取資料庫伺服器的第一個方法是嘗試建立資料庫。執行中的 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 使用者名稱,而不是以該使用者身份登入。
如果您在文件中發現任何錯誤、與您使用特定功能的經驗不符,或需要進一步澄清之處,請使用此表單來回報文件問題。