当前位置: 首页>>技术教程>>正文


在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/article/9950.html,未经允许,请勿转载。