PostgreSQL建立一個資料庫

來源:互聯網
上載者:User

標籤:

看看你能否訪問資料庫伺服器的第一個例子就是試著建立一個資料庫。一台運行著的 PostgreSQL 伺服器可以管理許多資料庫。通常我們會為每個項目和每個使用者單獨使用一個資料庫。

節點管理員可能已經為你建立了可以使用的資料庫。他應該已經告訴你這個資料庫的名字。如果這樣你就可以省略這一步,並且跳到下一節。

要建立一個新的資料庫(在我們這個例子裡叫 mydb),你可以使用下面的命令:

$ createdb mydb

它應該產生下面這樣的響應:

CREATE DATABASE

如果這樣,那麼這一步就成功了,你就可以忽略本節餘下的部分了。

如果你看到類似下面這樣的資訊:

createdb: command not found

那麼就是 PostgreSQL 沒有安裝好:要麼是就根本沒裝上、要麼是搜尋路徑沒有設定正確。嘗試用絕對路徑調用該命令試試:

$ /usr/local/pgsql/bin/createdb mydb

在你的節點上這個路徑可能不一樣。請和管理員聯絡或者看看安裝指導以擷取正確的位置。

另外一種響應可能是這樣:

createdb: could not connect to database postgres: could not connect to server: No such file or directory        Is the server running locally and accepting        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

這意味著伺服器沒有啟動,或者沒有在 createdb 預期的地方啟動。同樣,你也要檢查安裝指導或者找管理員。

另外一個響應可能是這樣:

createdb: could not connect to database postgres: FATAL:  role "joe" does not exist

在這裡提到了你自己的登陸名。如果管理員沒有為你建立 PostgreSQL 使用者帳號,就會發生這些現像。PostgreSQL 使用者帳號和作業系統使用者帳號是不同的。如果你就是管理員,參閱章18以擷取建立使用者帳號的協助。你需要變成安裝 PostgreSQL 的作業系統使用者的身份(通常是 postgres)才能建立第一個使用者帳號。也有可能是賦予 PostgreSQL 使用者名稱和作業系統使用者名稱不同;這種情況下,你需要使用 -U 開關或者使用 PGUSER 環境變數聲明 PostgreSQL 使用者名稱。

如果你有個資料庫使用者帳號,但是沒有建立資料庫所需要的許可權,那麼你會看到下面的東西:

createdb: 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 使用者名稱。

PostgreSQL建立一個資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.