✅ 宝塔 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

相关推荐
高梦轩1 天前
MySQL高可用
android·运维·数据库
紫金修道1 天前
【DeepAgent】概述
开发语言·数据库·python
孟章豪1 天前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
荒川之神1 天前
ORACLE LEVEL函数练习
数据库·oracle
·云扬·1 天前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
swIn KWAL1 天前
【MySQL】环境变量配置
数据库·mysql·adb
shark22222221 天前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI1 天前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
坊钰1 天前
Java 死锁问题及其解决方案
java·开发语言·数据库
onebound_noah1 天前
【实战教程】如何通过API快速获取淘宝/天猫商品评论数据(含多语言Demo)
大数据·数据库