如何在Ubuntu 20.04上安装PostgreSQL

PostgreSQL(又名Postgres)是一个开源对象关系数据库管理系统(ORDBMS),由PostgreSQL全球发展集团开发,该集团由个人志愿者和公司组成。

PostgreSQL适用于Linux,Microsoft Windows,FreeBSD,OpenBSD,Solaris和Mac OS。

在这里,我们将看到如何在Ubuntu 20.04上安装PostgreSQL。

添加PostgreSQL仓库

PostgreSQL可从Ubuntu(sudo apt更新&& sudo apt install -y postgresql)和PostgreSQL的存储库中获得。

PostgreSQL的存储库软件包比Ubuntu存储库中可用的软件包新。 因此,这里我们将从PostgreSQL的存储库安装PostgreSQL。

导入PostgreSQL的签名密钥。

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -

将PostgreSQL信息库信息添加到postgresql.list文件。

echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list

安装PostgreSQL

执行以下命令以更新存储库索引。

sudo apt update

使用apt命令安装PostgreSQL软件包。

### PostgreSQL 12 ###

sudo apt install -y postgresql-12

### PostgreSQL 11 ###

sudo apt install -y postgresql-11

默认情况下,PostgreSQL服务在安装后自动启动。

要检查PostgreSQL服务的状态,请运行:

将状态分别替换为启动,停止,重新启动以启动,停止和重新启动PostgreSQL服务。

sudo systemctl status postgresql
Output:

● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2020-05-05 06:02:21 EDT; 4min 25s ago
   Main PID: 3603 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 2319)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

May 05 06:02:21 ubun2004 systemd[1]: Starting PostgreSQL RDBMS...
May 05 06:02:21 ubun2004 systemd[1]: Finished PostgreSQL RDBMS.

配置PostgreSQL服务器

PostgreSQL服务器默认在localhost(127.0.0.1)上侦听。 有时,我们需要配置PostgreSQL以侦听所有适配器或系统IP地址,以允许外部计算机上托管的应用程序连接到数据库

### PostgreSQL 12 ###

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

### PostgreSQL 11 ###

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

将listen_addresses设置为*或

listen_addresses="*"

重新启动PostgreSQL服务。

sudo systemctl restart postgresql

使用netstat命令确认PostgreSQL正在侦听端口5432。

sudo netstat -antup | grep 5432
Output:

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      6172/postgres
tcp6       0      0 :::5432                 :::*                    LISTEN      6172/postgres

:在Ubuntu 20.04上找不到netstat命令–快速修复

访问PostgreSQL

要管理数据库,您需要以postgres用户身份登录。

sudo su -l postgres

使用psql命令进入用于使用PostgreSQL数据库的交互式shell。

psql

输出:

[email protected]:~$ psql
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

postgres=#

安全的PostgreSQL数据库

现在,我们将为postgres(Unix用户)和postgres(数据库管理员)设置一个密码。

设置Unix用户的密码(postgres)

sudo passwd postgres

设置数据库管理员的密码(postgres)

sudo su - postgres

psql

在psql shell上,运行以下命令来更改数据库管理员(postgres)密码。

postgres=# password

要么

postgres=# password postgres

输出:

postgres=# password postgres
Enter new password:
Enter it again:

PostgreSQL数据库命令

创建数据库

创建数据库:

postgres=# CREATE DATABASE test;

创建数据库用户

要创建用户:

postgres=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';

列出数据库用户

检查是否已创建用户。

postgres=# du

输出:

postgres=# du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 raj       | Superuser                                                  | {}

列表数据库

列出数据库:

postgres=# l

输出:

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

登录数据库

使用用户“ raj”登录。

$ psql -h localhost -d test -U raj
Output:

psql (12.2 (Ubuntu 12.2-4))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

test=#

删除用户

删除用户:

postgres=# DROP USER raj;

删除数据库

要删除数据库:

postgres=# DROP DATABASE test;

结论

就这样。 您已经在Ubuntu 20.04上成功安装了PostgreSQL。

Sidebar