Ubuntu 20.04 安装和配置 Postgres 14

PostgreSQL 是一种流行的开源对象关系数据库系统。 由于其可靠性、功能的稳健性和性能,它非常受欢迎。 它具有许多高级功能,允许开发人员构建容错和复杂的应用程序。 在编写本教程时,最新的可用版本是 PostgreSQL 14。

在这篇文章中,我们将解释 Ubuntu 20.04 上安装和配置 PostgreSQL 14。

先决条件

  • 在 云平台上运行 Ubuntu 20.04 的服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

安装以下先决条件:

apt install gnupg gnupg2 gnupg1 -y

第 2 步 – 安装 PostgreSQL 14

最新版本的 PostgreSQL 不包含在 Ubuntu 默认存储库中,因此我们需要将 PostgreSQL 官方存储库添加到 APT。

我们可以使用以下命令添加它:

sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

接下来,使用以下命令下载并添加 PostgreSQL GPG 密钥:

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

接下来,使用以下命令更新存储库缓存并安装 PostgreSQL 14:

apt-get update -y
apt-get install postgresql-14 -y

安装 PostgreSQL 后,使用以下命令检查 PostgreSQL 的状态:

systemctl status postgresql

我们将获得以下输出:

● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2021-11-26 04:57:30 UTC; 43s ago
   Main PID: 17268 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 2353)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Nov 26 04:57:30 ubuntu2004 systemd[1]: Starting PostgreSQL RDBMS...
Nov 26 04:57:30 ubuntu2004 systemd[1]: Finished PostgreSQL RDBMS.

我们还可以使用以下命令验证 PostgreSQL 版本:

sudo -u postgres psql -c "SELECT version();"

我们将获得以下输出:

                                                             version                                                              
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.1 (Ubuntu 14.1-2.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit

第 3 步 – 在 PostgreSQL 中创建数据库和用户

首先,我们可以使用以下命令连接到 PostgreSQL:

su - postgres
psql

我们将获得以下外壳:

psql (14.1 (Ubuntu 14.1-2.pgdg20.04+1))
Type "help" for help.

postgres=# 

接下来,使用以下命令创建一个名为 root 的超级用户:

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'securepassword';

运行以下命令以验证超级用户:

\du

我们将获得以下输出:

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

要创建一个名为 dbname 的数据库,请运行:

create database dbname;

要创建一个名为 dbuser 的新用户,请运行:

create user dbuser with encrypted password 'dbpassword';

要将 dbname 的所有权限授予 dbuser,请运行:

grant all privileges on database dbname to dbuser;

要列出所有数据库,请运行:

\l

我们将获得以下输出:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 dbname    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres         +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | dbuser=CTc/postgres
 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
(4 rows)

要退出 PostgreSQL shell,请运行:

\q
exit

第 4 步 – 为远程访问配置 PostgreSQL

默认情况下,PostgreSQL 仅配置为本地访问。 如果我们的应用程序服务器和数据库服务器托管在不同的服务器上,那么我们将需要配置 PostgreSQL 以进行远程访问。 我们可以通过编辑文件 pg_hba.conf 来配置它:

nano /etc/postgresql/14/main/pg_hba.conf

找到以下行:

local   all             all                                     peer

并将其替换为以下行:

local   all             all                                     trust

接下来,添加以下行:

host    all             all             0.0.0.0/0                md5

完成后保存并关闭文件。

接下来,我们还需要编辑 PostgreSQL 主配置文件并更改监听端口:

nano /etc/postgresql/14/main/postgresql.conf

更改以下行:

listen_addresses="*"

保存并关闭文件,然后重新启动 PostgreSQL 服务以应用更改:

systemctl restart postgresql

我们现在可以使用以下命令检查 PostgreSQL 侦听端口:

ss -antpl | grep 5432

我们将获得以下输出:

LISTEN    0         244                0.0.0.0:5432             0.0.0.0:*        users:(("postgres",pid=19030,fd=5))                                            
LISTEN    0         244                   [::]:5432                [::]:*        users:(("postgres",pid=19030,fd=6)) 

现在,转到远程系统并使用以下命令连接到 PostgreSQL 实例:

psql 'postgres://root:securepassword@104.245.34.223:5432/postgres?sslmode=disable'

如果一切正常,我们将获得以下 shell:

psql (14.1 (Ubuntu 14.1-2.pgdg20.04+1))
Type "help" for help.

postgres=# 

在上面的帖子中,我们学习了 Ubuntu 20.04 上安装和配置 PostgreSQL 14。 我们现在可以开始使用 PostgreSQL 数据库后端开发高性能和复杂的应用程序。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论