如何在 Ubuntu 上安裝和設定 PostgreSQL

2019-10-19 23:50:00

本教學中,你將學習如何在 Ubuntu Linux 上安裝和使用開源資料庫 PostgreSQL。

PostgreSQL (又名 Postgres) 是一個功能強大的自由開源的關係型資料庫管理系統 (RDBMS) ,其在可靠性、穩定性、效能方面獲得了業內極高的聲譽。它旨在處理各種規模的任務。它是跨平台的,而且是 macOS Server 的預設資料庫。

如果你喜歡簡單易用的 SQL 資料庫管理器,那麼 PostgreSQL 將是一個正確的選擇。PostgreSQL 對標準的 SQL 相容的同時提供了額外的附加特性,同時還可以被使用者大量擴充套件,使用者可以新增資料型別、函數並執行更多的操作。

之前我曾論述過 在 Ubuntu 上安裝 MySQL。在本文中,我將向你展示如何安裝和設定 PostgreSQL,以便你隨時可以使用它來滿足你的任何需求。

在 Ubuntu 上安裝 PostgreSQL

PostgreSQL 可以從 Ubuntu 主記憶體儲庫中獲取。然而,和許多其它開發工具一樣,它可能不是最新版本。

首先在終端中使用 apt 命令 檢查 Ubuntu 儲存庫 中可用的 PostgreSQL 版本:

apt show postgresql

在我的 Ubuntu 18.04 中,它顯示 PostgreSQL 的可用版本是 10(10+190 表示版本 10)而 PostgreSQL 版本 11 已經發布。

Package: postgresqlVersion: 10+190Priority: optionalSection: databaseSource: postgresql-common (190)Origin: Ubuntu

根據這些資訊,你可以自主決定是安裝 Ubuntu 提供的版本還是還是獲取 PostgreSQL 的最新發行版。

我將向你介紹這兩種方法:

方法一:通過 Ubuntu 儲存庫安裝 PostgreSQL

在終端中,使用以下命令安裝 PostgreSQL:

sudo apt updatesudo apt install postgresql postgresql-contrib

根據提示輸入你的密碼,依據於你的網速情況,程式將在幾秒到幾分鐘安裝完成。說到這一點,隨時檢查 Ubuntu 中的各種網路頻寬

什麼是 postgresql-contrib?

postgresql-contrib 或者說 contrib 包,包含一些不屬於 PostgreSQL 核心包的實用工具和功能。在大多數情況下,最好將 contrib 包與 PostgreSQL 核心一起安裝。

方法二:在 Ubuntu 中安裝最新版本的 PostgreSQL 11

要安裝 PostgreSQL 11, 你需要在 sources.list 中新增官方 PostgreSQL 儲存庫和證書,然後從那裡安裝它。

不用擔心,這並不複雜。 只需按照以下步驟。

首先新增 GPG 金鑰:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

現在,使用以下命令新增儲存庫。如果你使用的是 Linux Mint,則必須手動替換你的 Mint 所基於的 Ubuntu 版本號:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

現在一切就緒。使用以下命令安裝 PostgreSQL:

sudo apt updatesudo apt install postgresql postgresql-contrib

PostgreSQL GUI 應用程式

你也可以安裝用於管理 PostgreSQL 資料庫的 GUI 應用程式(pgAdmin):

sudo apt install pgadmin4

PostgreSQL 設定

你可以通過執行以下命令來檢查 PostgreSQL 是否正在執行:

service postgresql status

通過 service 命令,你可以啟動、關閉或重新啟動 postgresql。輸入 service postgresql 並按回車將列出所有選項。現在,登入該使用者。

預設情況下,PostgreSQL 會建立一個擁有所許可權的特殊使用者 postgres。要實際使用 PostgreSQL,你必須先登入該賬戶:

sudo su postgres

你的提示符會更改為類似於以下的內容:

postgres@ubuntu-VirtualBox:/home/ubuntu$ 

現在,使用 psql 來啟動 PostgreSQL Shell:

psql

你應該會看到如下提示符:

postgress=#

你可以輸入 \q 以退出,輸入 \? 獲取幫助。

要檢視現有的所有表,輸入如下命令:

\l

輸出內容類似於下圖所示(單擊 q 鍵退出該檢視):

PostgreSQL Tables

使用 \du 命令,你可以檢視 PostgreSQL 使用者:

PostgreSQLUsers

你可以使用以下命令更改任何使用者(包括 postgres)的密碼:

ALTER USER postgres WITH PASSWORD 'my_password';

注意:postgres 替換為你要更改的使用者名稱,my_password 替換為所需要的密碼。另外,不要忘記每條命令後面的 ;(分號)。

建議你另外建立一個使用者(不建議使用預設的 postgres 使用者)。為此,請使用以下命令:

CREATE USER my_user WITH PASSWORD 'my_password';

執行 \du,你將看到該使用者,但是,my_user 使用者沒有任何的屬性。來讓我們給它新增超級使用者許可權:

ALTER USER my_user WITH SUPERUSER;

你可以使用以下命令刪除使用者:

DROP USER my_user;

要使用其他使用者登入,使用 \q 命令退出,然後使用以下命令登入:

psql -U my_user

你可以使用 -d 引數直接連線資料庫:

psql -U my_user -d my_db

你可以使用其他已存在的使用者呼叫 PostgreSQL。例如,我使用 ubuntu。要登入,從終端執行以下命名:

psql -U ubuntu -d postgres

注意:你必須指定一個資料庫(預設情況下,它將嘗試將你連線到與登入的使用者名稱相同的資料庫)。

如果遇到如下錯誤:

psql: FATAL:  Peer authentication failed for user "my_user"

確保以正確的使用者身份登入,並使用管理員許可權編輯 /etc/postgresql/11/main/pg_hba.conf

sudo vim /etc/postgresql/11/main/pg_hba.conf

注意:用你的版本替換 11(例如 10)。

對如下所示的一行進行替換:

local   all             postgres                                peer

替換為:

local   all             postgres                                md5

然後重新啟動 PostgreSQL:

sudo service postgresql restart

使用 PostgreSQL 與使用其他 SQL 型別的資料庫相同。由於本文旨在幫助你進行初步的設定,因此不涉及具體的命令。不過,這裡有個 非常有用的要點 可供參考! 另外, 手冊(man psql)和 文件 也非常有用。

總結

閱讀本文有望指導你完成在 Ubuntu 系統上安裝和準備 PostgreSQL 的過程。如果你不熟悉 SQL,你應該閱讀 基本的 SQL 命令

如果你有任何問題或疑惑,請隨時在評論部分提出。