在 Rocky Linux 8/Alma Linux 8 上安装 PostgreSQL 16
三十多年来,PostgreSQL 一直是最受欢迎的数据库之一。该数据库由加州大学伯克利分校开发,以其可扩展性、完整性和可靠性而闻名。在需要高性能的领域,该数据库是首选。其中一些领域包括地理信息系统 (GIS)、数据仓库、科学研究、金融服务、医疗保健、游戏、网络应用程序等。
在本指南中,我们将学习如何在 Rocky Linux 8/Alma Linux 8 上安装 PostgreSQL 16。PostgreSQL 16 于 2023 年 9 月 14 日发布,在数据复制、监控、管理和性能方面具有新功能和改进。这不仅对社区而且对开发人员和系统管理员来说都是一个重要的里程碑。
PostgreSQL 16 的显着功能和改进包括:
- 逻辑复制增强:该功能自 PostgreSQL 10 中引入以来,在数据复制中一直至关重要。经过大约 6 年的开发和改进,逻辑复制在 PostgreSQL 16 中得到了增强。必要改进的引入使得工作负载管理更加轻松,并且能够减轻主服务器的额外活动。
- 性能提升:PostgreSQL 16 带来了多项性能增强。一些显着的改进包括添加堆和索引页、缓存
RANGE
和LIST
分区查找、提高更新进程标题的速度、通过vacuum和控制共享缓冲区的使用。分析等 - 全面的监控功能:为了让监控更加简单,PostgreSQL 16引入了pg_stat_io视图。这使用户可以更好地了解 Postgres 系统的 I/O 活动。通过简单的查询即可轻松访问所有系统 IO 统计信息。
- 管理员权限:以前的 PostgreSQL 版本需要超级用户帐户才能执行管理任务。但在 PostgreSQL 16 中,仅当角色具有这些角色的ADMIN OPTION时,才允许您授予角色权限。这使管理员更容易拥有细粒度的角色和权限,从而简化管理
以下步骤应该可以帮助您在 Rocky Linux 8/Alma Linux 8 上安装 PostgreSQL 16
第 1 步:配置 PostgreSQL YUM 存储库
第一步涉及添加提供 PostgreSQL 16 软件包的 YUM 存储库。要添加 PostgreSQL 存储库,请使用以下命令:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
现在禁用默认的 PostgreSQL 模块:
sudo dnf -qy module disable postgresql
步骤 2:安装 PostgreSQL 16 软件包
在上述步骤中配置 YUM 存储库后。您可以使用以下命令在 Rocky Linux 8/Alma Linux 8 上安装 PostgreSQL 16:
sudo dnf install postgresql16-server
依赖树:
....
Transaction Summary
==============================================================================================
Install 3 Packages
Total download size: 8.9 M
Installed size: 38 M
Is this ok [y/N]: y
初始化 PostgreSQL 16 数据库:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
现在启动并启用该服务:
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
检查服务是否正在运行:
$ systemctl status postgresql-16
● postgresql-16.service - PostgreSQL 16 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2023-09-16 04:39:02 EDT; 2s ago
Docs: https://www.postgresql.org/docs/16/static/
Process: 2661 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 2666 (postgres)
Tasks: 7 (limit: 23505)
Memory: 17.6M
CGroup: /system.slice/postgresql-16.service
├─2666 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
├─2669 postgres: logger
├─2671 postgres: checkpointer
├─2672 postgres: background writer
├─2674 postgres: walwriter
├─2675 postgres: autovacuum launcher
└─2676 postgres: logical replication launcher
Sep 16 04:39:02 localhost.localdomain systemd[1]: Starting PostgreSQL 16 database server...
步骤 3:配置 PostgreSQL 16
PostgreSQL 16 将其配置文件存储在 /var/lib/psql/16/data/ 目录中。我们要做的第一件事是配置 PostgreSQL 16 以进行远程访问。
修改以下文件:
sudo vim /var/lib/pgsql/16/data/postgresql.conf
在打开的文件中,您可以根据需要更改监听端口和绑定地址:
##Enable Remote access
listen_addresses = '*'
.....
##Change the listen Port here
port = 5436 # (change requires restart)
....
完成更改后,保存文件并重新启动服务:
sudo systemctl restart postgresql-16
允许 PostgreSQL 端口通过防火墙:
sudo firewall-cmd --add-port=5436/tcp --permanent
sudo firewall-cmd --reload
为了让 PostgreSQL 接受远程连接,您需要修改 pg_hba.conf,如下所示:
$ sudo vim /var/lib/pgsql/16/data/pg_hba.conf
# To Accept from anywhere
#host all all 0.0.0.0/0 md5
# Accept from trusted subnet
host all all 192.168.200.0/24 md5
重新启动服务:
sudo systemctl restart postgresql-16
步骤 4:连接到 PostgreSQL 16 数据库
您可以使用两种方法在本地连接到 PostgreSQL 16 数据库。
方法一:
您可以直接连接到 PostgreSQL:
$ sudo -u postgres psql
psql (16.0)
Type "help" for help.
postgres=#
方法二:
另一种方法首先需要切换到 Postgres 用户:
sudo -i -u postgres
然后连接到外壳:
$ psql
psql (16.0)
Type "help" for help.
postgres=#
要远程连接到 PostgreSQL,请使用具有以下语法的命令:
psql -U <dbuser> -h <serverip> -p 5432 <dbname>
连接后,您可以执行所需的活动。首先,您可以保护用户:
ALTER USER postgres PASSWORD 'Str0ngP@ssw0rd';
创建数据库:
CREATE DATABASE testdb;
创建用户并授予他们访问数据库的权限
CREATE USER demo_user with encrypted password 'PassW0rd';
GRANT ALL PRIVILEGES ON DATABASE testdb to demo_user;
最后的想法
在本指南中,我们介绍了如何在 Rocky Linux 8/Alma Linux 8 上安装 PostgreSQL 16。我们还学习了如何对 PostgreSQL 16 数据库进行一些配置。我希望你能从中受益。
查看更多:
- 在 Rocky Linux/AlmaLinux 上安装 PostgreSQL 15
- 在 Ubuntu 上安装和配置 PostgreSQL 16
- 如何在 Debian 上安装 PostgreSQL 14