當前位置: 首頁>>技術教程>>正文


在Ubuntu 18.04 Bionic Beaver上安裝PostgreSQL

, ,

目的

目的是在Ubuntu 18.04 Bionic Beaver上安裝PostgreSQL服務器或客戶端

操作係統和軟件版本

  • 操作係統:-Ubuntu 18.04仿生海狸
  • 軟件:-PostgreSQL服務器10

要求

以root或通過特權訪問Ubuntu係統sudo命令是必需的。

困難

簡單

約定

  • -要求給出linux命令可以直接以root用戶身份或通過使用root特權以root特權執行sudo命令
  • $-要求給出linux命令以普通非特權用戶身份執行

使用說明

在Ubuntu上安裝PostreSQL Client

如果隻需要連接到遠程PostreSQL服務器,則隻需在本地Ubuntu主機上安裝PostgreSQL客戶端。為此,請執行:


$ sudo apt install postgresql-client

PostreSQl客戶端安裝完成後,即可使用psql命令連接到遠程PostreSQL服務器。例如以下linux命令將通過主機名連接到PostgreSQL服務器postresql-ubuntu作為用戶postgres


$ psql -h postresql-ubuntu -U postgres
psql (10.2 (Ubuntu 10.2-1))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

請參閱以下有關如何配置PostreSQL服務器以接受遠程客戶端連接的信息。




在Ubuntu上安裝PostreSQL Server

在本節中,我們將在Ubuntu 18.04 Linux上安裝PostgreSQL服務器。安裝非常簡單:


$ sudo apt install postgresql

PostreSQL安裝完成後,通過檢查端口號上的偵聽套接字來確認它已按預期啟動並運行5432

$ ss -nlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128       0.0.0.0:22                    0.0.0.0:*    
LISTEN      0      5       127.0.0.1:631                   0.0.0.0:*      
LISTEN      0      128     127.0.0.1:5432                  0.0.0.0:*   
LISTEN      0      128          [::]:22                       [::]:*   
LISTEN      0      5           [::1]:631                      [::]:*    

PostgreSQL服務器將在重啟後啟動。要操作此默認行為,您可以通過以下方法禁用或啟用PostreSQL啟動:


$ sudo systemctl disable postgresql
OR
$ sudo systemctl enable postgresql

默認情況下,PostgreSQL服務器將僅在本地loop-back接口上偵聽127.0.0.1。如果需要將PostreSQL服務器配置為在所有網絡上偵聽,則需要配置其主配置文件 /etc/postgresql/10/main/postgresql.conf


$ sudo nano /etc/postgresql/10/main/postgresql.conf

並將以下行添加到CONNECTIONS AND AUTHENTICATION部分:


listen_addresses = '*'

配置完成後,重新啟動PostreSQL服務器:


$ sudo service postgresql restart

PostreSQL服務器現在應該在套接字上偵聽0.0.0.0:5432。您可以通過執行ss命令:

$ ss -nlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128       0.0.0.0:22                    0.0.0.0:*    
LISTEN      0      5       127.0.0.1:631                   0.0.0.0:*      
LISTEN      0      128     0.0.0.0:5432                  0.0.0.0:*   
LISTEN      0      128          [::]:22                       [::]:*   
LISTEN      0      5           [::1]:631                      [::]:*    

接下來,要接受從遠程PostreSQL客戶端到所有數據庫和所有用戶的連接,請將以下行添加到/etc/postgresql/10/main/pg_hba.conf


host    all          all            0.0.0.0/0  trust

否則可能會導致以下錯誤消息:


psql: FATAL:  no pg_hba.conf entry for host "postresql-client", user "postgres", database "postgres", SSL on
FATAL:  no pg_hba.conf entry for host "postresql-client", user "postgres", database "postgres", SSL off

最後,如果啟用了UFW防火牆,則可以打開PostreSQL的端口5432通過執行以下命令,將其傳輸到任何TCP傳入流量:


$ sudo ufw allow from any to any port 5432 proto tcp
Rule added
Rule added (v6)

如果您想使防火牆規則更加嚴格,請訪問我們的如何打開/允許傳入防火牆端口指南了解更多信息。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/9950.html,未經允許,請勿轉載。