如何在CentOS 8 上安裝 PostgreSQL 數據庫

如何在CentOS 8 上安裝 PostgreSQL 數據庫

PostgreSQL是一個開源的通用對象關系數據庫管理系統,PostgreSQL支持大部分的SQL標準并且提供了很多其他現代特性,如復雜查詢、外鍵、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也可以用許多方法擴展,例如通過增加新的數據類型、函數、操作符、聚集函數、索引方法、過程語言等。另外,因為許可證的靈活,任何人都可以以任何目的免費使用、修改和分發PostgreSQL。

在本教程中,我們將介紹如何在 CentOS 8 服務器上安裝PostgreSQL數據庫以及PostgreSQL數據庫的基本管理操作。

一、前提條件

01、學習本教程前你需要有一臺自己的安裝有CentOS 8的服務器或者VPS。如果咩有建議可以自己創建一臺虛擬機或者去購買阿里云VPS騰訊云VPS或者注冊即送$50的Vultr VPS服務器

02、為了能夠安裝軟件包,您需要以root用戶或具有sudo特權的用戶身份登錄。

二、在CentOS 8上安裝PostgreSQL 數據庫

在撰寫本文時,有兩個版本的PostgreSQL服務器可從標準CentOS存儲庫中安裝:版本9.6和10.0。

要列出可用的PostgreSQL模塊流,請輸入:

dnf module list postgresql

輸出顯示可用的兩個postgresql。每個個都包含服務器和客戶端。postgresql 10 是默認設置。

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 

01、要安裝默選項的PostgreSQL服務器版本10.0,直接如下安裝命令:

sudo dnf install @postgresql:10

02、要安裝PostgreSQL服務器9.6版,請輸入:

sudo dnf install @postgresql:9.6

你可能還需要安裝contrib軟件包,該軟件包為PostgreSQL數據庫提供了一些附加功能:

sudo dnf install postgresql-contrib

安裝完成后,使用以下命令初始化PostgreSQL數據庫:

sudo postgresql-setup initdb

輸出:

Initializing database ... OK

啟動PostgreSQL服務,并配置為其能夠在系統啟動時啟動:

sudo systemctl enable --now postgresql

使用該psql工具通過連接到PostgreSQL數據庫服務器來驗證安裝并打印其版本:

sudo -u postgres psql -c "SELECT version();"

輸出:

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

三、PostgreSQL角色和驗證方法

PostgreSQL使用角色的概念來處理數據庫訪問權限。角色可以代表一個數據庫用戶或一組數據庫用戶。

PostgreSQL支持多種身份驗證方法。最常用的方法是:

  • 信任-只要符合定義的條件,角色就可以不使用密碼進行連接pg_hba.conf
  • 密碼-角色可以通過提供密碼進行連接。密碼可以存儲為scram-sha-256md5password(明文)。
  • 標識符-僅在TCP/IP連接上受支持。它通過獲取客戶端的操作系統用戶名以及可選的用戶名映射來工作。
  • 對等-與Ident相同,但僅在本地連接上受支持。

PostgreSQL客戶端身份驗證在名為pg_hba.conf的配置文件中定義。默認情況下,對于本地連接,PostgreSQL設置為使用對等身份驗證方法。

在你安裝PostgreSQL服務器過程中postgres用戶會被自動創建。該用戶是PostgreSQL實例的超級用戶,你可以看成等效于MySQL的root用戶。

要以postgres用戶身份登錄到PostgreSQL服務器,需要首先切換到該用戶,然后運行psql命令程序訪問PostgreSQL提示符:

sudo su - postgres
psql

從這里,可以與PostgreSQL實例進行交互。要退出PostgreSQL shell,請輸入:

\q

還可以訪問PostgreSQL提示符,而無需使用以下sudo命令切換用戶:

sudo -u postgres psql

通常,postgres僅從本地主機使用該用戶。

四、創建PostgreSQL角色和數據庫

只有超級用戶和具有CREATEROLE特權的角色才能創建新角色。

在以下示例中,我們將創建一個名為john的新角色,一個名johndb為的數據庫,并授予該數據庫的特權。

01、首先,連接到PostgreSQL shell:

sudo -u postgres psql

02、使用以下命令創建一個新的PostgreSQL角色:

create role John;

03、創建一個新的數據庫:

create database johndb;

04、通過運行以下查詢,向數據庫上的用戶授予特權:

grant all privileges on database johndb to John;

五、啟用對PostgreSQL服務器的遠程訪問

默認情況下,PostgreSQL服務器僅供本地(127.0.0.1)訪問。

要啟用對PostgreSQL服務器的遠程訪問,請打開配置文件:

sudo nano /var/lib/pgsql/data/postgresql.conf

在打開文件中找到CONNECTIONS AND AUTHENTICATION部分,然后添加/編輯以下行:

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

保存文件,并使用以下命令重新啟動PostgreSQL服務:

sudo systemctl restart postgresql

使用ss實用程序驗證更改:

ss -nlt | grep 5432

如果已經正常啟動,會輸出如下內容:

LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

上面的輸出顯示PostgreSQL服務器正在所有接口(0.0.0.0)的默認端口上偵聽。

最后一步是通過編輯/var/lib/pgsql/data/pg_hba.conf文件將服務器配置為接受遠程連接。

以下是一些顯示不同用例的示例:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

六、寫在最后

本教程講解了如何在CentOS 8 上安裝 PostgreSQL數據庫并進行最基礎的管理內容。希望你通過本教程有所收獲。如果你的條件已經具備,不妨在自己的CentOS 8服務器上進行安裝嘗試。

更多關于PostgreSQL信息,可以參看PostgreSQL文檔。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容