目的
目的是在Ubuntu 18.04 Bionic Beaver上安装PostgreSQL服务器或客户端
操作系统和软件版本
- 操作系统:-Ubuntu 18.04仿生海狸
- 软件:-PostgreSQL服务器10
要求
以root或通过特权访问Ubuntu系统sudo
命令是必需的。
困难
简单
约定
使用说明
在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)
如果您想使防火墙规则更加严格,请访问我们的如何打开/允许传入防火墙端口指南了解更多信息。