✅ 宝塔 PostgreSQL 安装 contrib 扩展完整指南

目标:解决 Spring-AI extension "hstore" is not available 等错误

宝塔PostgreSQL 软件商店安装没有这些环境很坑👊、没事的就是有问题解决问题😊

适用系统:Linux(如 CentOS、OpenCloudOS、Ubuntu 等)

适用环境:通过 宝塔面板 安装的 PostgreSQL

🔍 第一步:确认 PostgreSQL 版本

使用这个命令进入对应的数据库 可以查看对应的版本 我的数据库数 ai_rag

bash 复制代码
 psql -U postgres -d ai_rag 

📌 记下版本号(如 16.1),后续需下载完全一致的源码


📥 第二步:下载对应版本的 PostgreSQL 源码

bash 复制代码
cd /tmp

# 替换为你的实际版本,例如 16.1
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz

tar -zxvf postgresql-16.1.tar.gz
cd postgresql-16.1

✅ 官方源码地址:https://www.postgresql.org/ftp/source/


⚙️ 第三步:获取原始编译参数并执行 configure

bash 复制代码
# 查看宝塔 PostgreSQL 的编译参数
/www/server/pgsql/bin/pg_config --configure

示例输出:

执行 configure(去掉单引号,直接使用参数)

bash 复制代码
./configure --prefix=/www/server/pgsql --without-readline

✅ 此步骤不会重新安装 PostgreSQL ,仅生成 contrib 编译所需的 Makefile.global 文件。

🛠️ 第四步:编译并安装 contrib 扩展

方式 A:只安装 hstore(推荐先试这个、如果只是缺这个的话)

bash 复制代码
cd contrib/hstore
make
make install

成功截图

方式 B:一次性安装所有常用 contrib 扩展(推荐长期使用)

⚠️ 注意:这个不一定会成功 可能会导致拓展没有成功比如 uuid-oss

bash 复制代码
cd /tmp/postgresql-16.1/contrib
make all
 make install

✅ 第五步:验证扩展是否安装成

1. 检查文件是否存在

bash 复制代码
ls /www/server/pgsql/share/extension/hstore.control
ls /www/server/pgsql/lib/hstore.so

2. 在数据库中启用扩展

bash 复制代码
-- 连接到你的数据库(如 ai_rag)
psql -U postgres -d ai_rag

-- 创建扩展(无报错即成功)
CREATE EXTENSION IF NOT EXISTS hstore;

3.✅ 验证最终结果

bash 复制代码
SELECT name, default_version FROM pg_available_extensions WHERE name = 'hstore';

🧪 第六步:重启应用验证

现在你的 Spring Boot 应用应该能正常启动,不再报:

bash 复制代码
ERROR: extension "hstore" is not available

📝 注意事项

项目 说明
版本必须严格一致 源码版本 ≠ 运行版本 → .so 不兼容 → 数据库崩溃
无需重新编译主程序 只需 configure,不需要 make && make install 主程序
宝塔用户常见问题 宝塔默认不装 contrib,需手动补全
权限问题 make install 需要 root 权限,记得加 sudo

如果UUID创建报错参考 PostgreSQL 安装UUID

相关推荐
山岚的运维笔记27 分钟前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
roman_日积跬步-终至千里1 小时前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
汇智信科1 小时前
打破信息孤岛,重构企业效率:汇智信科企业信息系统一体化运营平台
数据库·重构
野犬寒鸦2 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
晚霞的不甘3 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位3 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华23 小时前
mysql索引
数据库·mysql
2601_949593654 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__4 小时前
mysql新老项目版本选择
数据库·mysql
Dxy12393102164 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql