centos postgresql扩展插件安装教程
导读:CentOS 上安装与启用 PostgreSQL 扩展插件教程 一 准备与版本确认 确认系统版本与发行版:例如 CentOS 7/8/Stream,以及 PostgreSQL 主版本号(如 12/13/14/15/16)。扩展包名与版本需...
CentOS 上安装与启用 PostgreSQL 扩展插件教程
一 准备与版本确认
- 确认系统版本与发行版:例如 CentOS 7/8/Stream,以及 PostgreSQL 主版本号(如 12/13/14/15/16)。扩展包名与版本需与主版本严格匹配。
- 安装或启用 PostgreSQL 官方 YUM 源(PGDG),否则很多扩展包不可见。以 EL-8 为例:
- 安装源:sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 安装对应版本的 contrib 包(包含大量内置扩展的二进制与脚本):
- 语法:sudo dnf/yum install -y postgresqlXX-contrib(将 XX 替换为你的主版本,如 postgresql15-contrib)。
- 启动数据库并设置为开机自启:
- sudo systemctl start postgresql
- sudo systemctl enable postgresql
- 以 postgres 用户登录数据库:
- sudo -u postgres psql
以上步骤完成后,系统已具备安装大多数官方扩展的基础环境。
- sudo -u postgres psql
二 安装与启用扩展的标准流程
- 步骤概览:
- 用系统包管理器安装扩展对应的 RPM 包(若需要);
- 在目标数据库中执行 CREATE EXTENSION 加载扩展;
- 用元命令或系统视图核验安装结果。
- 常用 SQL 核验:
- 列出可用扩展:SELECT name FROM pg_available_extensions;
- 查看已安装扩展:SELECT * FROM pg_extension;
- psql 元命令:\dx(查看当前库已安装扩展)。
- 典型示例(内置/常用扩展):
- 性能分析:
- 安装包:sudo dnf/yum install -y postgresqlXX-contrib
- 数据库中:CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
- 文本相似度/模糊匹配:
- 安装包:sudo dnf/yum install -y postgresqlXX-contrib
- 数据库中:CREATE EXTENSION IF NOT EXISTS pg_trgm;
- UUID 生成:
- 安装包:sudo dnf/yum install -y postgresqlXX-contrib
- 数据库中:CREATE EXTENSION IF NOT EXISTS “uuid-ossp”;
(注意双引号保持大小写)
上述流程适用于绝大多数官方扩展;安装 RPM 后,仍需在数据库内执行 CREATE EXTENSION 才能真正加载到目标库。
- 性能分析:
三 需要预加载的扩展与配置
- 少数扩展需要在服务器启动时预加载(通过参数 shared_preload_libraries 指定),否则无法创建或使用。
- 示例(pg_trgm 需要预加载):
- 编辑配置文件 postgresql.conf:shared_preload_libraries = ‘pg_trgm’(若已有值,用逗号追加,不要覆盖原有项);
- 重启数据库:sudo systemctl restart postgresql;
- 进入数据库创建扩展:CREATE EXTENSION IF NOT EXISTS pg_trgm;
预加载类扩展务必按文档要求配置并重启,否则会出现“函数不存在/无法创建扩展”等错误。
四 PostGIS 扩展安装示例
- 安装依赖与 PostGIS 包(以 EL-8 + PostgreSQL 15 为例,其他版本将 15 替换为你的版本):
- 依赖:sudo dnf install -y geos gdal proj
- PostGIS:sudo dnf install -y postgis32_15(版本号可能随仓库变化,可用 dnf search postgis 查找准确包名)
- 在数据库中启用:
- 基础空间扩展:CREATE EXTENSION IF NOT EXISTS postgis;
- 拓扑扩展:CREATE EXTENSION IF NOT EXISTS postgis_topology;
- 验证:\dx 应能看到 postgis、postgis_topology 等;也可查询 pg_extension 确认。
PostGIS 属于扩展集合,通常需安装对应版本的 postgis 包并在数据库内创建扩展对象后方可使用。
五 常见问题与卸载
- 扩展不存在或创建失败:
- 先确认已安装对应版本的 postgresqlXX-contrib 或扩展包;
- 在 psql 中 \dx 与 SELECT * FROM pg_available_extensions; 核对可用与已安装状态。
- 有对象依赖导致无法删除:
- 使用级联删除:DROP EXTENSION postgis CASCADE; (请先评估对业务对象的影响)。
- 需要重启才能用的扩展:
- 修改 shared_preload_libraries 后必须重启数据库,再创建扩展。
- 版本不匹配:
- 扩展包名与主版本必须一致(如 postgresql15-contrib 对应 PG 15),否则可能找不到扩展或创建失败。
以上要点可帮助快速定位安装与卸载过程中的常见问题。
- 扩展包名与主版本必须一致(如 postgresql15-contrib 对应 PG 15),否则可能找不到扩展或创建失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos postgresql扩展插件安装教程
本文地址: https://pptw.com/jishu/770640.html
