在 Rocky Linux 9/AlmaLinux 9 上安装 PostgreSQL 15 |
根据其官方页面,PostgreSQL 据说是一个功能强大的开源对象关系数据库系统,经过超过 35 年的积极开发,在可靠性、功能稳健性和性能方面赢得了良好的声誉。版本 15 于 2022 年 10 月 13 日发布,建立在最近版本的性能改进的基础上,在管理本地和分布式部署中的工作负载方面取得了显着的进步,包括改进的排序。有关此版本中新功能的更多信息可在此版本页面上找到。
在简要指南中,我们将在 Rocky Linux 9/AlmaLinux 9 上安装 PostgreSQL 15,以便您可以享受应用程序所享受的改进性能。让我们完成这个:
第 1 步:准备服务器
在第一步中,您知道我们不能在空白的石板上做任何事情。让我们清理房间并放入基本的家具。我们将更新系统并安装本次会议中需要的几个软件包。它们包括良好的编辑器、文件获取工具等软件包。运行以下命令让我们开始:
sudo dnf update -y && sudo dnf install curl vim wget -y
步骤 2:安装并设置存储库 RPM
我们需要这个存储库,以便我们能够获取我们的 Postgres 包。安装如下:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
步骤 3:禁用内置 PostgreSQL 模块
在此步骤中,我们将禁用默认模块,如果不选中该模块,该模块将安装不同版本的 Postgres。
sudo dnf -qy module disable postgresql
步骤 4:安装 PostgreSQL
禁用默认模块后,通过运行以下命令继续安装 PostgreSQL 15 客户端和服务器:
sudo dnf install -y postgresql15-server
这将安装 PostgreSQL 服务器和客户端以及所有其他依赖项。安装过程完成后,让我们使用以下命令确认安装的 PostgreSQL 版本:
$ psql --version
psql (PostgreSQL) 15.0
第5步:初始化PostgreSQL数据库
由于 Red Hat 系列发行版的政策,PostgreSQL 安装将不会启用自动启动或自动初始化数据库。要完成数据库安装,您需要初始化数据库并确保它在引导时启动。因此,让我们初始化 PostgreSQL 数据库:
运行以下命令:
$ sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Initializing database ... OK
接下来,我们将启用 Postgres 服务器在启动计算机时启动。运行以下命令来启用并启动数据库服务器。
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
我知道你在想什么,你可以去看看它的状态!
$ systemctl status postgresql-15
● postgresql-15.service - PostgreSQL 15 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-10-21 16:32:54 CEST; 6s ago
Docs: https://www.postgresql.org/docs/15/static/
Process: 47251 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 47256 (postmaster)
Tasks: 7 (limit: 11119)
Memory: 17.5M
CPU: 39ms
CGroup: /system.slice/postgresql-15.service
├─47256 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/
├─47257 "postgres: logger "
├─47258 "postgres: checkpointer"
第6步:连接到PostgreSQL数据库
接下来,我们将了解如何连接到数据库。为了避免混淆,在安装 PostgreSQL 时,会自动创建一个名为 postgres 的默认数据库用户。该用户默认没有密码,因此登录时不会传递任何密码。因此我们先更改为“postgres”用户,然后像这样登录
sudo su - postgres
然后通过运行以下 postgres 命令登录
$ psql
您应该如下所示进入数据库:
psql (15.0)
Type "help" for help.
postgres=#
现在您可以继续调用 Postgres 相关命令并在该终端执行查询。但在此之前,您已经注意到我们的服务器并不安全,我们需要对“postgres”用户进行身份验证,以便任何人都无法像这样访问服务器。
第7步:为postgres用户添加密码
作为具有 sudo 权限的用户,运行以下命令来配置 postgres 用户密码:
$ sudo passwd postgres
Changing password for user postgres.
New password: <Enter-Password>
Retype new password: <Re-Enter-Password>
passwd: all authentication tokens updated successfully
让我们尝试更改为 postgres 用户,系统将提示您输入密码。
$ sudo su - postgres
Password:
Last login: Sun Oct 22 13:37:38 CEST 2022 on pts/0
运行客户端命令:
$ psql
psql (15.0)
Type "help" for help.
postgres=#
此时,一旦切换到 postgres 用户,您仍然可以无需密码登录 PostgreSQL 数据库。那么,让我们改变这一点,对吧。
在数据库终端内,运行以下查询来更改密码:
postgres=# \password
Enter new password for user "postgres": <Enter-Your-Password>
Enter it again: <Re-Enter-Your-Password>
第 8 步:配置 Postgres
我们将允许从本地主机或您认为合适的任何其他来源登录我们的数据库。为此,我们将编辑配置文件并进行一些修改。打开配置文件并编辑如下:
$ sudo vim /var/lib/pgsql/15/data/pg_hba.conf
## CHAGE THE FOLLOWNG LINES.
## You can add extra hosts if you like
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
然后重启服务器
sudo systemctl restart postgresql-15
之后,让我们尝试立即登录
$ psql -U postgres --password -h 127.0.0.1
Password:
psql (15.0)
Type "help" for help.
postgres=#
就在那里,我们可以庆祝!
推荐书籍:
- 学习 PostgreSQL 数据库的最佳书籍
最后评论
到目前为止,我们已经做了很多工作,但最终我们已经能够获得最新版本的 PostgreSQL,在撰写本文时为版本 15,您应该准备好将服务器用于您的各种用例。我们希望它能提供尽可能多的信息,并且您喜欢它。给自己一个精彩的年末季节,它一直在积极地招手。