如何在Ubuntu 20.04上安装PostgreSQL 13 18.04

时间:2020-02-23 14:32:12  来源:igfitidea点击:

PostgreSQL是一种非常流行的开源对象关系数据库管理系统(DBMS),其创建是为了确保可靠性,效率和数据完整性。现在的开发工作已超过30年,该项目在可靠性,功能强大性和性能方面赢得了很高的声誉。在本教程中,我们将说明如何在Ubuntu 20.04 | 18.04 Linux服务器上安装和配置PostgreSQL 13数据库服务器。

PostgreSQL的最新版本为13,旨在用于在生产环境中运行工作负载。我们可以在发行说明中找到有关PostgreSQL 13中发现的所有功能和更改的信息。

更新Ubuntu系统

我们始终致力于最新版本的OS,以确保不存在旧的依赖性问题。登录到Ubuntu服务器并运行以下命令以更新所有已安装的软件包。

sudo apt update
sudo apt -y upgrade

系统更新后,建议我们重新启动以使新内核在更新时运行。

sudo reboot

将PostgreSQL 13存储库添加到Ubuntu 20.04 | 18.04

现在我们已经更新并重新启动了系统,让我们添加将软件包从PostgreSQL存储库中拉出所需的APT存储库。

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

导入GPG密钥后,将存储库内容添加到Ubuntu 20.04 | 18.04系统:

echo "deb http://apt.postgresql.org/pub/repos/apt/`lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

添加的存储库包含许多不同的软件包,包括第三方插件。它们包括:postgresql-clientpostgresqllibpq-devpostgresql-server-devpgadmin软件包

在Ubuntu 20.04/18.04 Linux上安装PostgreSQL 13

添加存储库后,我们可以在Ubuntu 20.04 | 18.04 Linux服务器上安装PostgreSQL 13软件包。但是首先要更新该版本的软件包索引,以使其在操作系统级别可用。

sudo apt update

运行以下命令在Ubuntu 20.04上安装PostgreSQL 13 | 18.04 Linux系统。

sudo apt install postgresql-13 postgresql-client-13

PostgreSQL服务已启动,并设置为在每次系统重新引导后启动。

$systemctl status postgresql.service 
 ● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    Active: active (exited) since Sun 2017-10-07 10:23:46 UTC; 6min ago
  Main PID: 8159 (code=exited, status=0/SUCCESS)
     Tasks: 0 (limit: 2362)
    CGroup: /system.slice/postgresql.service

$systemctl status theitroad@localhost 

$systemctl is-enabled postgresql
enabled

测试PostgreSQL连接

在安装过程中,将自动创建一个postgres用户。该用户具有对整个PostgreSQL实例的完全超级管理员访问权限。在切换到该帐户之前,我们登录的系统用户应具有sudo特权。

sudo su - postgres

让我们将此用户密码重置为我们可以记住的强密码。

psql -c "alter user postgres with password 'theitroad@localhost'"

使用以下命令启动PostgreSQL提示符:

$psql

获取如下的连接详细信息。

$psql
psql (13.0 (Ubuntu 13.0-1.pgdg18.04+1))
Type "help" for help.

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

让我们创建一个测试数据库并让用户查看其是否正常工作。

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'theitroad@localhost';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser;
GRANT

列出创建的数据库:

postgres=# \l
                               List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |    Access privileges    
-----------+----------+----------+---------+---------+------------------------
 mytestdb  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres           +
           |          |          |         |         | postgres=CTc/postgres  +
           |          |          |         |         | mytestuser=CTc/postgres
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres            +
           |          |          |         |         | postgres=CTc/postgres
(4 rows)

连接到数据库:

postgres-# \c mytestdb
You are now connected to database "mytestdb" as user "postgres".

安装的其他PostgreSQL实用程序(例如createuser和createdb)可用于创建数据库和用户。

theitroad@localhost:~$createuser myuser --password
Password:
theitroad@localhost:~$createdb mydb -O myuser
theitroad@localhost:~$psql -l

我们可以在PostgreSQL服务器上创建并连接到数据库。

配置远程连接(可选)

在Ubuntu上安装PostgreSQL 13仅接受来自localhost的连接。在理想的生产环境中,我们将拥有一个中央数据库服务器和与其连接的远程客户端,但是当然要在专用网络(LAN)中。

要启用远程连接,请编辑PostgreSQL配置文件:

sudo nano /etc/postgresql/13/main/postgresql.conf

取消注释第59行,并更改"侦听"地址以接受网络内的连接。

# Listen on all interfaces
listen_addresses = '*'

# Listen on specified private IP address
listen_addresses = '192.168.10.11'

更改后,重新启动postgresql服务。

sudo systemctl restart postgresql

确认收听地址。

# netstat  -tunelp | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      111        112837     11143/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      111        112838     11143/postgres

安装pgAdmin4管理工具

如果要从Web界面管理PostgreSQL数据库服务器,请安装pgAdmin4.

在Ubuntu上安装pgAdmin4