在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14 |在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14 |在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14 |在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签
コアサーバーV2プランご契約でドメイン更新費用が永久無料

PostgreSQL 社区多年来为提高繁重事务工作负载的性能和对分布式数据的大力支持所做的工作非常令人着迷。 PostgresSQL 数据库已经存在很多年了,它赢得了许多大公司的信任,这些公司使用它来为每天处理数百万笔交易的应用程序提供支持。截至我们更新本文时,最新且稳定的版本是 PostgreSQL 14。

PostgresSQL 数据库经过 30 多年的积极开发,以其可靠性、稳健性和性能而享有盛誉。它也是一个兼容 SQL 的数据库管理系统,用作 Web、移动应用程序、银行应用程序、分析和许多其他应用程序的主要数据存储。

PostgreSQL 14 版本带来了许多新功能和性能改进,修复了其前身的补丁和补丁。 PostgreSQL 14 版本中的一些值得注意的功能包括:

  • 解码准备好的交易。
  • 支持正在进行的事务的逻辑复制。
  • 逻辑复制现在可以以二进制格式传输数据。
  • 包含 DDL 的事务的逻辑解码的性能改进。
  • 现在,逻辑复制中的表同步期间允许多个事务。
  • 现在,通过添加 ADD PUBLICATION 和 DROP PUBLICATION 选项,ALTER SUBSCRIPTION 语句可以更轻松地添加/删除发布。
  • 过程可以有 OUT 参数。
  • CREATE FUNCTION 和 CREATE PROCEDURE 语句现在支持 SQL 语言。
  • TRUNCATE 可以使用 postgres_fdw 模块对外部表进行操作。
  • 添加了对多范围数据类型的支持。
  • 添加了 pg_amcheck 命令行实用程序以简化在许多关系上运行 contrib/amcheck 操作。
  • 现在可以通过对数据进行预排序来构建一些 GiST 索引。
  • BRIN 索引现在可以记录每个范围的多个最小/最大值。
  • BRIN 索引现在可以使用布隆过滤器。

在 Ubuntu 22.04 上安装 PostgreSQL 14 (Jammy Jellyfish)

按照本文在 Ubuntu 22.04 (Jammy Jellyfish) 上安装 PostgreSQL 14。我们的指南还将捕获数据库的配置、用户的创建、设置超级用户密码以及从远程客户端连接到数据库。

第1步:安装依赖项

在您的 Ubuntu 22.04 (Jammy Jellyfish) 上,执行系统更新和升级

sudo apt update && sudo apt -y full-upgrade

提交内核更新后,需要重新启动系统:

[ -f /var/run/reboot-required ] && sudo reboot -f

重新启动后,安装配置 PostgreSQL 存储库所需的关键包。

安装必要的软件包:

sudo apt install vim curl wget gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates

步骤 2:添加 PostgreSQL 存储库

默认操作系统软件包存储库中存在的 PostgreSQL 版本对于默认版本来说不是最新的。

apt policy postgresql

我们建议您添加存储库并从中在 Ubuntu 22.04 上安装 PostgreSQL 14。让我们导入签名包中使用的 GPG 密钥。

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

使用以下命令在 Ubuntu 22.04 系统上添加 PostgreSQL 存储库。

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

通知系统有关新添加的存储库的信息。

sudo apt update

对于新添加的存储库,存储库元数据同步应该成功:

Hit:1 http://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease

步骤 3:安装 PostgreSQL 14

现在我们已经添加了存储库,让我们使用以下命令安装 PostgreSQL 14。

sudo apt install postgresql-14

PostgreSQL 服务应该会自动启动,并且可以按如下方式进行验证。

$ systemctl status [email 
● [email  - PostgreSQL Cluster 14-main
     Loaded: loaded (/lib/systemd/system/[email ; enabled-runtime; vendor preset: enabled)
     Active: active (running) since Sat 2022-06-11 11:18:23 EAT; 1min 2s ago
    Process: 4139 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 14-main start (code=exited, status=0/SUCCESS)
   Main PID: 4144 (postgres)
      Tasks: 7 (limit: 9460)
     Memory: 18.0M
        CPU: 165ms
     CGroup: /system.slice/system-postgresql.slice/[email 
             ├─4144 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf
             ├─4146 "postgres: 14/main: checkpointer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─4147 "postgres: 14/main: background writer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ├─4148 "postgres: 14/main: walwriter " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─4149 "postgres: 14/main: autovacuum launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             ├─4150 "postgres: 14/main: stats collector " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             └─4151 "postgres: 14/main: logical replication launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

Jun 11 11:18:21 ubuntu22 systemd[1]: Starting PostgreSQL Cluster 14-main...
Jun 11 11:18:23 ubuntu22 systemd[1]: Started PostgreSQL Cluster 14-main.
lines 1-19/19 (END)

可以使用以下命令检查 PostgreSQL 的安装版本。

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

示例输出:

                                                             version                                                             
---------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.3 (Ubuntu 14.3-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, 64-bit
(1 row)

步骤 4:连接到 PostgreSQL 14 数据库

有两种方法可以访问 PostgreSQL 管理控制台

  1. 运行 postgres 命令
$ sudo -u postgres psql
psql (14.3 (Ubuntu 14.3-1.pgdg22.04+1))
Type "help" for help.

postgres=#

选项 2。

对于此选项,您首先必须切换到 PostgreSQL 14 安装后创建的 Postgres 用户。

sudo -i -u postgres

在此期间,连接到实例。

$ psql
psql (14.3 (Ubuntu 14.3-1.pgdg22.04+1))
Type "help" for help.

postgres=#

现在,使用上述任何方法连接到实例,您仍然可以管理数据库。

步骤 5:配置远程访问(可选)

PostgreSQL 通过一个名为角色的概念支持多种客户端身份验证方法。默认的身份验证方法是身份验证,它将 Postgres 角色与 Unix 系统帐户关联起来。所有受支持的身份验证方法有:

  • Ident – 仅支持通过 TCP/IP 连接。它通过可选的用户名映射获取客户端系统用户名。
  • 密码 – 角色使用密码进行连接。
  • Peer – 与 ident 类似,但仅支持本地连接。
  • 信任 – 只要满足 pg_hba.conf 中定义的条件,就允许角色进行连接。

为了远程访问我们的数据库服务器实例,我们应该在文件 /etc/postgresql/14/main/pg_hba.conf 中进行更改。

通过运行以下命令允许在 PostgreSQL 服务器上进行密码身份验证。

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

接下来是将识别方法从对等更改为信任,如下所示。

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

要允许从任何地方访问实例,请编辑命令如下:

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

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

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             0.0.0.0/0                md5

# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0                md5

现在,通过如下编辑 /etc/postgresql/14/main/postgresql.conf 中的 conf 文件来确保服务正在侦听 *。

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

在文件中,取消注释并编辑该行,如下所示。

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

现在重新启动并启用 PostgreSQL 以使更改生效。

sudo systemctl restart postgresql
sudo systemctl enable postgresql

步骤 6:在 PostgreSQL 14 中管理用户

使用 psql 命令连接到您的 PostgreSQL 实例:

sudo -u postgres psql

我们将创建一个名为 admin 的新超级用户,密码为 Passw0rd。

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

验证已创建具有所需权限的用户。

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

postgres=# 

在 Postgres shell 中,我们创建一个名为 demo1 的用户,并为其分配对 demodb 的访问权限

create database demodb;
create user demo1 with encrypted password 'Passw0rd';
grant all privileges on database demodb to demo1;

第7步:连接到远程PostgreSQL

检查您的 PostgreSQL 服务是否正在侦听端口 5432。

$ ss -tunelp | grep 5432
tcp    LISTEN   0        244               0.0.0.0:5432           0.0.0.0:*      uid:123 ino:292971 sk:a <->                                                    
tcp    LISTEN   0        244                  [::]:5432              [::]:*      uid:123 ino:292972 sk:d v6only:1 <-> 

如果您有 UFW 防火墙,则允许该端口进行远程连接。

sudo ufw allow 5432/tcp

从远程客户端计算机使用 psql 命令连接的语法是:

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

考虑下面的示例来演示如何启动远程连接。

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

推荐书籍:

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

包起来

至此,我们已经能够在 Ubuntu 22.04 Linux 机器上安装和配置 PostgreSQL 14。我们希望本指南对您有很大帮助。如果您遇到任何问题,请在评论部分告诉我们。干杯!

我们的网站上有类似的文章:

  • 在 Debian 上安装 PostgreSQL 14
  • 安装 PostgreSQL 14 CentOS 7 | RHEL 7
  • 在 Fedora 上安装 PostgreSQL 14
  • 学习 PostgreSQL 数据库的最佳书籍
©2015-2025 Norria support@alaica.com