系统极客一直在努力
专注操作系统及软件使用技能

如何在 Ubuntu 24.04 LTS 上安装 PostgreSQL 16 数据库

PostgreSQL

PostgreSQL 16 带来了一系列新特性和改进,进一步巩固了 PostgreSQL 在数据库管理系统中的领先地位。以下是 PostgreSQL 16 的一些主要亮点:

  • 并行处理增强:PostgreSQL 16 引入了对 FULL 和内部右 OUTER hash 连接的并行处理支持,显著提升了查询性能。
  • 复制功能更强大:现在支持从备用服务器进行逻辑复制,订阅者能够并行处理大型事务,显著提高了数据同步效率。
  • 监控功能更全面:引入了新增的 pg_stat_io 视图,可以更深入地监控 I/O 统计数据,帮助管理员更好地了解系统性能。
  • JSON 处理更灵活:引入了新的 SQL/JSON 构造器和身份函数,使得处理 JSON 数据更加灵活和高效。
  • 真空冻结更高效:PostgreSQL 16 优化了真空冻结的性能,提升了数据库维护效率,缩短了维护窗口时间。
  • 安全性更上一层楼pg_hba.conf中的用户和数据库名称,以及pg_ident.conf中的用户名称现在支持正则表达式匹配。不仅增强了安全性,也让配置更加灵活和精确。

接下来,本文将详细介绍如何在 Ubuntu 24.04 LTS 上安装 PostgreSQL 16 数据库。

第 1 步:准备工作

在开始安装 PostgreSQL 16 之前,我们需要做好一些准备工作:

1.1 系统要求

硬件组件最低要求
处理器1GHz 或更快的处理器
内存2GB 或以上
磁盘空间512MB 硬盘空间(可能需要额外空间用于数据或支持组件)
支持的版本Ubuntu 24.04 LTS、Ubuntu 22.04 LTS 和 Ubuntu 20.04 LTS

1.2 更新 Ubuntu 系统

在「终端」中执行以下命令,更新系统软件包:

sudo apt update  # 更新软件包列表
sudo apt upgrade # 升级软件包

1.3 安装依赖

接下来,安装 PostgreSQL 16 运行所需的依赖包,这是确保数据库系统正常运行的基础:

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl

1.4 添加 PostgreSQL 16 软件源

1.导入 PostgreSQL GPG 密钥,确保下载的软件包安全可靠:

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

2.根据需要,添加 PostgreSQL 16 仓库(选项其中一个):

  • 适用于生产或日常使用的稳定仓库

稳定仓库是大多数用户,尤其是生产环境中的首选。它会定期更新,确保版本稳定和安全:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list
导入 PostgreSQL GPG 密钥,并添加 PostgreSQL 软件源
导入 PostgreSQL GPG 密钥,并添加 PostgreSQL 软件源
  • 适用于开发者的测试仓库

如果你正在进行开发或测试,可以使用快照或测试仓库。但请注意,由于测试版本可能不稳定,不适用于生产环境:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
  • 包含最新功能的测试仓库

设置最新功能的测试仓库:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

3.更新软件包列表,让 Ubuntu 识别新添加的 PostgreSQL 16 软件源:

sudo apt update

第 2 步:安装 PostgreSQL 16 数据库

1在「终端」中执行以下命令,安装 PostgreSQL 16 服务器和客户端:

sudo apt install postgresql-client-16 postgresql-16
安装 PostgreSQL 16 服务器和客户端
安装 PostgreSQL 16 服务器和客户端

2安装完成后,检查 PostgreSQL 服务的状态:

systemctl status postgresql

如果 PostgreSQL 服务已成功启动,你将会看到服务正在运行。

查看 PostgreSQL 服务是否已启动
查看 PostgreSQL 服务是否已启动

第 3 步:管理 PostgreSQL 服务

安装完成后,我们可以对 PostgreSQL 服务进行管理操作:

  • 检查服务状态

确认 PostgreSQL 服务是否正在运行。在「终端」中执行以下命令:

systemctl status postgresql
  • 启动、停止和重启服务

你也可以根据实际需要,手动启动、停止或重启 PostgreSQL 服务:

sudo systemctl start postgresql   # 启动服务
sudo systemctl stop postgresql    # 停止服务
sudo systemctl restart postgresql  # 重启服务
  • 设置开机自启动

为了提升使用便捷性,建议将 PostgreSQL 设置为系统启动时自动启动:

sudo systemctl enable postgresql  # 设置开机自启动
sudo systemctl disable postgresql # 禁用开机自启动

第 4 步:PostgreSQL 管理操作(可选)

4.1 访问 Postgres 超级用户账户

1在 PostgreSQL 中,postgres是默认的超级用户,它对执行管理命令至关重要。要切换到这个账户,请执行:

sudo -i -u postgres

2进入账户后,输入以下命令打开 PostgreSQL 命令行界面:

psql

3当你看到postgres=#提示符时,表示已经成功连接到 PostgreSQL 环境。

4(推荐)我们也可以使用以下命令直接访问 PostgreSQL:

sudo -u postgres psql

5你可以执行exit随时退出 PostgreSQL 环境。

4.2 创建数据库并设置管理权限

1出于安全等因素考虑,通常我们并不直接使用postgres帐户,而是创建新的 PostgreSQL 用户角色:

sudo su - postgres -c "createuser <用户名>"  # 把 <用户名> 替换成你想要的用户名

2为新用户创建一个数据库:

sudo su - postgres -c "createdb <数据库名>"  # 把 <数据库名> 替换成你想要的数据库名称

3授予用户访问数据库的权限:

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <数据库名> TO <用户名>;
创建 PostgreSQL 数据库并设置管理权限
创建 PostgreSQL 数据库并设置管理权限

4.3 开启 PostgreSQL 16 远程访问

默认情况下,PostgreSQL 只监听本地网络接口。如果需要远程连接 PostgreSQL,需要将其调整为其他指定的网络接口:

1使用文本编辑器打开 PostgreSQL 配置文件:

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

2在「Connection Settings」部分,找到listen_addresses = 'localhost',取消注释并根据你的需要进行修改:

  • 如果只允许特定 IP 地址访问,就把localhost替换成该 IP 地址。
  • 如果要允许所有网络连接,就改成listen_addresses = '*'
开启 PostgreSQL 16 远程访问
开启 PostgreSQL 16 远程访问

3保存配置文件,并重启 PostgreSQL 服务让修改生效:

sudo systemctl restart postgresql

PostgreSQL 参考资料

为了帮助你全面地学习和使用 PostgreSQL,我们整理了一些有价值的参考资料:

赞(0) 赞赏

评论 抢沙发

微信赞赏