在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

本文介绍在Ubuntu 22.04 Linux系统上安装PostgreSQL 14的详细步骤,内容包括数据库的配置、用户的创建、设置超级用户密码以及从远程客户端连接到数据库。

安装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:在Ubuntu 22.04上添加PostgreSQL存储库

默认OS包存储库中存在的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

新添加的存储库的Repo元数据同步应成功:

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

步骤3:在Ubuntu 22.04上安装PostgreSQL 14

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

sudo apt install postgresql-14

PostgreSQL服务应自动启动,并可按如下方式进行验证:

$ systemctl status postgresql@14-main.service

PostgreSQL的安装版本可以通过以下命令进行检查:

sudo -u postgres psql -c "SELECT 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

在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

2、第二种方法

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

sudo -i -u postgres

在这里,连接到实例:

$ psql

在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

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

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

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

Ident–仅通过TCP/IP连接支持。它获取带有可选用户名映射的客户端系统用户名。

Password–角色使用密码连接。

Peer–类似于ident,但仅支持本地连接。

Trust–只要满足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

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

listen_addresses='*'

在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

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

sudo systemctl restart postgresql

sudo systemctl enable postgresql

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

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

sudo -u postgres psql

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

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

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

postgres=# \du

在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

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

create database demodb;

create user demo1 with encrypted password 'Passw0rd';

grant all privileges on database demodb to demo1;

步骤7:连接到远程PostgreSQL 14实例

检查PostgreSQL服务是否正在侦听端口5432:

$ ss -tunelp | grep 5432

在Ubuntu 22.04系统上安装PostgreSQL 14的详细步骤

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

sudo ufw allow 5432/tcp

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

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

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

psql 'postgres://admin:Passw0rd@192.168.205.10:5432/postgres?sslmode=disable'

至此,整个操作步骤完成。这说明我们已经成功在Ubuntu 22.04 Linux机器上安装和配置PostgreSQL 14了。

栏目相关文章