如何在 Debian 11/10 上安装 PostgreSQL 14 |如何在 Debian 11/10 上安装 PostgreSQL 14 |如何在 Debian 11/10 上安装 PostgreSQL 14 |如何在 Debian 11/10 上安装 PostgreSQL 14 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Debian 11/10 上安装 PostgreSQL 14 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

经过 30 多年的存在和积极发展,PostgreSQL 在稳健性、可靠性和性能方面赢得了良好的声誉。 PostgreSQL 是一个免费、开源的关系数据库管理系统。 PostgreSQL 14 是这个世界上最先进的开源数据库的最新发布版本。

最新版本 PostgreSQL 14 引入了多项新功能,有助于简化实现数据驱动应用程序的开发和管理。它继续在复杂数据类型领域进行改进,包括更易于访问的 JSON 访问和对非连续数据范围的支持。 PostgreSQL 14 在 PostgreSQL 的高性能和分布式工作负载历史中发挥了重要作用,在逻辑复制、查询并行性、高写入工作负载、连接并发性方面进行了改进。

PostgreSQL 14 的特性

PostgreSQL 14 具有以下功能和增强功能:

  • 通过并行查询、大量并发工作负载、分区数据库、逻辑复制和清理,性能显着提高。
  • OUT 参数现在可用于从存储过程返回数据。
  • JSON 便利性和多范围 - 支持非连续数据范围的表示。
  • 下标运算符已添加到 jsonb 和 hstore 类型中。
  • 对 B 树索引的更新进行更有效的管理,从而减少索引膨胀。
  • 通过libpq支持管道查询,这可以显着提高高延迟连接的吞吐量。
  • 安全增强

在本指南中,我们将系统地介绍如何在 Debian 11 上安装 PostgreSQL 14 | Debian 10。

设置先决条件

对于本指南,请确保您具备以下条件:

  • Debian 11|Debian 10 服务器。
  • 具有 sudo 访问权限的用户。

确保您的系统已更新。

sudo apt update && sudo apt upgrade -y

然后继续并安装所需的软件包。

sudo apt -y install gnupg2 wget vim

步骤 1 – 在 Debian 11 上安装 PostgreSQL 14 | Debian 10

PostgreSQL 在默认 Debian 存储库中可用,但可用版本不是最新的。使用以下命令检查可用版本:

sudo apt-cache search postgresql | grep postgresql

在本指南中,我们对默认存储库中未提供的 PostgreSQL 14 感兴趣。因此,我们需要添加一个提供该包的存储库。

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

导入添加的存储库的 GPG 密钥。

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

接下来,更新您的 APT 包索引。

sudo apt -y update

现在使用以下命令在 Debian 11/Debian 10 上安装 PostgreSQL 14。

sudo apt install postgresql-14

验证您的 PostgreSQL 14 安装如下。

$ sudo -u postgres psql -c "SELECT version();"
                                                           version                                                           
-----------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.8 (Debian 14.8-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit

完成安装后,PostgreSQL 14 将被初始化。检查服务的状态如下。

$ systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2021-10-25 07:26:42 EDT; 1min 10s ago
    Process: 3811 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 3811 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Oct 25 07:26:42 debian systemd[1]: Starting PostgreSQL RDBMS...
Oct 25 07:26:42 debian systemd[1]: Finished PostgreSQL RDBMS.

第 2 步 – 连接并保护 PostgreSQL 数据库

在 PostgreSQL 中,有一个称为角色的概念,用于客户端身份验证。默认情况下,PostgreSQL 设置为使用身份验证。此方法将角色与匹配的 Linux 系统帐户关联起来。如果存在,那么您就可以登录。

安装后,将创建一个名为 postgres 的用户帐户,并将其与角色 postgres 关联。使用此用户,可以登录 PostgreSQL shell。

PostgreSQL 支持的多种身份验证方法包括:

  1. 密码 – 允许角色通过提供密码进行连接。
  2. Ident – 通过 TCP/IP 连接获取客户端的操作系统用户名以及用于映射的可选用户名。
  3. Peer – 工作方式与 ident 类似,但仅支持本地连接。
  4. 信任 – 它使用pg_hba.conf上定义的条件。只要满足conf文件中的条件,用户就可以无需密码进行连接

连接 PostgreSQL 数据库有两种方式;

方法一:

切换到 postgres 用户。

sudo -i -u postgres

现在使用命令访问 PostgreSQL shell。

psql

示例输出:

postgres@debian:~$ psql
psql (14.8 (Debian 14.8-1.pgdg110+1))
Type "help" for help.

postgres=# 

现在,您可以在 shell 中管理数据库。

方法二:

在这种方法中,不需要切换到postgres用户,可以直接使用下面的sudo命令访问PostgreSQL shell。

sudo -u postgres psql

示例输出:

$ sudo -u postgres psql
psql (14.8 (Debian 14.8-1.pgdg110+1))
Type "help" for help.

postgres=# 

步骤 3 – 配置 PostgreSQL 14 实例以进行远程访问

为了远程访问 PostgreSQL 14 实例,我们需要修改 /etc/postgresql/14/main/pg_hba.conf 文件

首先,将对等标识更改为信任,如下所示。

sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf

然后,允许密码登录。

sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/14/main/pg_hba.conf

现在允许从任何地方访问。

sudo vim /etc/postgresql/14/main/pg_hba.conf

在该文件中,添加以下行。

# Database administrative login by Unix domain socket
local   all             postgres                                trust
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             0.0.0.0/24              md5
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0               md5

现在通过编辑以下文件允许 PostgreSQL 监听 *。

sudo vim /etc/postgresql/14/main/postgresql.conf

如下编辑文件。

# CONNECTIONS AND AUTHENTICATION
........
listen_addresses='*'

为了使所做的更改生效,您需要重新启动 PosgreSQL。

sudo systemctl restart postgresql
sudo systemctl enable postgresql

步骤 4 – PostgreSQL 数据库中的用户管理

现在我们已经配置了所有内容,让我们创建一个用于数据库管理的超级用户。

连接到 PostgreSQL 角色。

sudo -u postgres psql

创建一个超级用户 admin,密码为 Passw0rd,如下所示。

CREATE ROLE admin WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'Passw0rd';

示例输出:


postgres=# CREATE ROLE admin WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'Passw0rd';
CREATE ROLE
postgres=# 

管理应用程序用户

创建数据库并授予用户对数据库的权限。在本指南中,我们将创建一个名为 test_db 的数据库和一个密码为 dbpassword 的用户 test_user,如下所示。

create database test_db;
create user test_user with encrypted password 'dbpassword';
grant all privileges on database test_db to test_user;
\q

从远程主机连接到实例。

验证服务是否正在运行:

$ ss -tunelp | grep 5432
tcp   LISTEN 0      244          0.0.0.0:5432       0.0.0.0:*    uid:117 ino:30522 sk:d cgroup:/system.slice/system-postgresql.slice/[email  <->
tcp   LISTEN 0      244             [::]:5432          [::]:*    uid:117 ino:30523 sk:e cgroup:/system.slice/system-postgresql.slice/[email  v6only:1 <->

如果您使用 ufw,请允许端口 5432 通过防火墙,如下所示。

sudo ufw allow 5432/tcp

现在我们想要从远程主机连接到 PostgreSQL 14 实例。语法如下。

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

例如,在另一台主机上,我将尝试使用超级用户帐户连接到我的 PostgreSQL14 实例,如下所示。

首先,在远程主机上安装 PostgreSQL 14 并继续访问您的 PostgreSQL14 实例。

psql 'postgres://admin:[email :5432/postgres?sslmode=disable'

示例输出:

推荐书籍:

  • 学习 PostgreSQL 数据库的最佳书籍

结论

我们已经成功演练了如何在 Debian 11 上安装 PostgreSQL 14 | Debian 10。除此之外,我们还对 PostgreSQL 14 进行了配置,并通过远程主机访问它。学习就够了!

查看更多:

  • 如何使用 Ansible 管理 PostgreSQL 数据库
  • 学习 PostgreSQL 数据库的最佳书籍
  • 在 Fedora 上安装 PostgreSQL 13
  • 如何在 CentOS 7 上安装 PostgreSQL 13
©2015-2025 Norria support@norria.com