1. 宝塔安装

  1. 首先确保你的宝塔已经安装了 PostgreSQL。

安装好后是能看到上面这个界面的。

我安装的是 16.1 版本,下面的教程讲的也是 16.1 版本的。

2.开放防火墙的端口号 5432

3.允许外部访问所有数据库

4.设置超级管理员用户密码

用户名默认为:postgres

后续连接数据库可用超级用户连接

username:postgres

password:就是你刚刚设置的

2. 安装 pgvector 插件

2.1 查看安装状态

1. 首先去到控制台,输入命令连接 postgreSQL 数据库。

/www/server/pgsql/bin/psql -U postgres -h localhost -p 5432

显示 postgres=# 就是连接上了数据库,可以敲 sql 语句了。

2. 在psql命令行中,执行创建扩展的命令:

CREATE EXTENSION vector;

如果没有安装过插件就会报错。

3.验证是否安装成功:

\dx vector

如果成功,它会列出 vector 扩展的信息。如下图:

2.2 安装pgvector

下载pgvector插件:

下载地址: https://github.com/pgvector/pgvector/archive/refs/tags/v0.7.4.zip

postgresql14 对应 pgvector0.5 的版本

postgresql15 对应 pgvector0.6 的版本

postgresql15 对应 pgvector0.7 的版本

将压缩包本地解压好,去宝塔建个文件夹,直接把文件都传进去。

2.3 编译安装

进入刚刚上传文件夹的目录,准备编译安装。

# 进入你的 pgvector 源代码目录
cd /www/wwwroot/pgvector# 清理之前的编译尝试(可选,但推荐)
make clean# 使用找到的 pg_config 路径进行编译
make PG_CONFIG=/www/server/pgsql/bin/pg_config# 安装编译好的扩展(需要 root 权限)
sudo make install PG_CONFIG=/www/server/pgsql/bin/pg_config

然后重复 2.1 查看安装状态,查看是否安装成功。

2.4 设置环境变量 (建议设置)

1.找到PostgreSQL的可执行工具路径

我的 PostgreSQL 安装目录是/www/server/pgsql。这个目录下的 bin 子目录包含了所有 PostgreSQL的命令行工具,包括 psql (PostgreSQL 交互终端)和 pg-ctl (服务控制工具)。

重要工具路径:

psql:/www/server/pgsql/bin/psql(用于连接数据库和执行 SQL 命令)

pg-ctl:/www/server/pgsql/bin/pg-ctl(用于管理PostgreSQL 服务,如启动、停止)

检查工具是否存在:

ls -la /www/server/pgsql/bin/psql
ls -la /www/server/pgsql/bin/pg-ctl

如果这些文件存在(应该有可执行权限),你就可以使用它们了。

2.设置环境变量

为了方便使用,建议将 PostgreSQL 的 bin目录添加到你的 PATH 环境变量中。这样你就可以直接在命令行中输入 psql、pg-ctl 等命令,而不需要每次都输入完整路径。

#临时添加(当前终端会话有效):
export PATH=/www/server/pgsql/bin:$PATH#永久添加(推荐):
#将上面的export 命令添加到你的 shell配置文件中(如~/.bashrc 或~/.bash_profile):
echo 'export PATH=/www/server/pgsql/bin:$PATH' >> ~/.bashrc
Source ~/.bashrc#验证路径是否设置成功:
which psql
# 应该输出: /www/server/pgsql/bin/psql

3.使用psql 连接到 PostgreSQL 数据库

psql 是 PostgreSQL 的交互式终端程序,允许执行 SQL 命令和管理数据库。

以postgres用户连接到数据库:

#使用完整路径(如果未设置PATH)
/www/server/pgsql/bin/psql -U postgres -h localhost -p 5432#或者如果已设置PATH
psql -U postgres -h localhost -p 5432

说明:

  • -U postgres:指定用户名(PostgreSQL 的默认超级用户通常叫postgres)
  • -h localhost:指定主机 (这里连接本地数据库)
  • -p 5432:指定端口(PostgreSQL 默认端口是54321,如果你的配置不同请修改)

如果连接失败:

  • 权限问题:检查/www/server/pgsql/data/pg_hba.conf 文件,确保有允许 postgres 用户从本地连接的配置。
  • 端口问题:确认你的 PostgreSQL 实际监听端口

(检查/www/server/pgsql/data/postgresql.conf 中的 port 设置)。

4.在数据库中启用pgvector扩展

成功连接to PostgreSQL 后,你会看到提示符变为postgres=#,这表示你现在可以执行 SQL 命令。

创建并启用扩展:

-- 启用 vector 扩展
CREATE EXTENSION vector;-- 验证扩展是否安装成功
\dx vector

3.解决PostgreSQL中“vector"类型不存在的问题

问题原因分析

扩展已安装但未启用:PostgreSQL 扩展需要在每个要使用它的数据库中单独创建。即使服务器层面安装了 pgvector,不执行 CREATE EXTENSION 命令,当前数据库也无法识别vector 数据类型。

权限问题:当前数据库用户可能没有创建扩展的权限。

搜索路径问题:扩展可能安装在了非默认模式(schema)下,而该模式不在你的search_path中。

解决方法:

步骤1:连接到你的数据库并创建扩展

使用有权限的用户(如postgres或具有超级用户权限的用户)连接到你需要使用vector 数据类型的数据库,然后执行以下 SQL 命令:

-- 连接到你的数据库后,执行以下命令创建扩展
CREATE EXTENSION IF NOT EXISTS vector;

步骤2:验证扩展是否创建成功

创建扩展后,可以通过以下命令验证是否成功:

-- 查看当前数据库已安装的扩展列表,检查 vector 是否在列
\dx-- 或者查询扩展详情
SELECT * FROM pg_extension WHERE extname = 'vector';

4.解决 Spring AI PgVectorStore 的 hstore 扩展问题

错误信息显示:

ERROR: extension "hstore" is not available
详细:Could not open extension control file "/www/server/pgsql/share/extension/hstore.control": No such file or directory.
建议:The extension must first be installed on the system where PostgreSQL is running.

<font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">hstore</font> 是 PostgreSQL 的一个扩展,用于存储键值对数据。Spring AI 的 PgVectorStore 依赖这个扩展来存储元数据。

安装 hstore 扩展

安装 PostgreSQL contrib 包(包含 hstore 扩展):

指定版本(假设你使用的是 PostgreSQL 16sudo yum install postgresql16-contrib

让 PostgreSQL 找到 hstore 扩展

手动将 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">contrib</font> 包提供的扩展文件复制或链接到 PostgreSQL 的搜索路径中。

步骤 1: 查找 hstore 扩展文件的位置

首先,我们需要找到 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">postgresql16-contrib</font> 包安装后,<font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">hstore</font> 扩展文件实际存放的位置。

使用 find 命令搜索
在终端中执行以下命令,搜索 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">hstore.control</font> 文件:

  1. bashsudo find / -name “hstore.control” 2>/dev/null

或者更精确地搜索 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">contrib</font> 相关的目录:

  1. bashsudo find /usr -path “/contrib/” -name “hstore.control” 2>/dev/null
  2. 检查常见的安装路径
    根据 OpenCloudOS 和 PostgreSQL 的常见安装路径,<font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">hstore.control</font> 文件很可能在以下位置之一:
    • <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">/usr/share/pgsql/extension/hstore.control</font>
    • <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">/usr/share/postgresql16/extension/hstore.control</font>
    • <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">/usr/pgsql-16/share/extension/hstore.control</font>

步骤 2: 将扩展文件链接到 PostgreSQL 目录

找到 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">hstore.control</font> 文件及其同目录下的相关文件(通常是 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">.sql</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">.so</font> 文件)后,您有两种方法让 PostgreSQL 找到它们:

创建符号链接(推荐,更灵活)

假设您找到的路径是 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">/usr/share/pgsql/extension/hstore.control</font>

# 创建扩展目录(如果不存在)
sudo mkdir -p /www/server/pgsql/share/extension/# 为 hstore.control 创建符号链接
sudo ln -s /usr/share/pgsql/extension/hstore.control /www/server/pgsql/share/extension/hstore.control# 为 hstore--1.x.sql 文件创建符号链接(请替换 x 为实际版本号,或用通配符)
sudo ln -s /usr/share/pgsql/extension/hstore--1*.sql /www/server/pgsql/share/extension/# 为 hstore.so 共享库创建符号链接(库文件可能在 lib 目录下)
# 先找到 hstore.so 文件
sudo find / -name "hstore.so" 2>/dev/null
# 假设找到的路径是 /usr/lib64/pgsql/hstore.so
sudo ln -s /usr/lib64/pgsql/hstore.so /www/server/pgsql/lib/hstore.so

步骤 3: 设置文件权限

确保 PostgreSQL 用户(通常是 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">postgres</font>)有权限读取这些文件:

bash

sudo chown postgres:postgres /www/server/pgsql/share/extension/hstore.*
sudo chmod 644 /www/server/pgsql/share/extension/hstore.*
sudo chown postgres:postgres /www/server/pgsql/lib/hstore.so
sudo chmod 755 /www/server/pgsql/lib/hstore.so

步骤 4: 重启 PostgreSQL 服务并启用扩展

完成文件链接或复制后,重启 PostgreSQL 服务以使更改生效,然后启用扩展:

先手动去宝塔面板重启 PostgreSQL 服务

# 连接到 PostgreSQL
psql -U postgres -h localhost# 在 psql 中创建扩展
CREATE EXTENSION hstore;# 验证扩展是否安装成功
\dx hstore

最后确认一下 PostgreSQL 配置文件有没有问题:

5.PostgreSQL 数据库中缺少 uuid-ossp 扩展

  1. 创建符号链接
# 为扩展控制文件和SQL文件创建符号链接
sudo ln -s /usr/share/pgsql/extension/uuid-ossp.control /www/server/pgsql/share/extension/
sudo ln -s /usr/share/pgsql/extension/uuid-ossp--1.0--1.1.sql /www/server/pgsql/share/extension/
sudo ln -s /usr/share/pgsql/extension/uuid-ossp--1.1.sql /www/server/pgsql/share/extension/# 为共享库文件创建符号链接
sudo ln -s /usr/lib64/pgsql/uuid-ossp.so /www/server/pgsql/lib/
  1. 验证符号链接:
ls -la /www/server/pgsql/share/extension/uuid-ossp*
ls -la /www/server/pgsql/lib/uuid-ossp.so

3.重启 PostgreSQL 服务(手动)

4.在 PostgreSQL 中创建扩展

CREATE EXTENSION "uuid-ossp";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95939.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95939.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/95939.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟系统 doc转pdf

# 安装LibreOffice&#xff08;如果尚未安装&#xff09; sudo apt update sudo apt install libreoffice# 将DOC转换为PDF libreoffice --headless --convert-to pdf 你的文档.doc# 或者指定输出目录 libreoffice --headless --convert-to pdf --outdir /输出目录 你的文档.do…

Python实现生成矩形框、三角形框、六边形框和圆环点云

本节我们分享上节提到的不填充点云。在点云处理、计算机视觉与工业检测中&#xff0c;几何轮廓&#xff08;边框/环&#xff09;点云比实心点云更能反映物体的边缘特征、结构骨架与形貌突变区域。Python 借助 NumPy 即可快速生成矩形边框、三角形边框、六边形边框与圆环点云&am…

2025年本体论:公理与规则的挑战与趋势

摘要本文章旨在深入探讨本体论&#xff08;Ontology&#xff09;中公理&#xff08;Axioms&#xff09;与规则&#xff08;Rules&#xff09;的核心概念、技术实现、验证方法、性能评估及其在2025年的前沿趋势与挑战。公理与规则是构建严谨、一致知识模型的逻辑基石&#xff0c…

【51单片机】【protues仿真】基于51单片机PM2.5空气质量检测系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、LCD1602液晶显示 2、按键​设置阈值 3、PM2.5大于阈值时启动声光警报 二、使用步骤 基于51单片机的PM2.5空气质量检测系统通常采用STC89C51/52作为核心控制器&#xff0c;结合…

【目录-单选】鸿蒙HarmonyOS开发者基础

用哪一种装饰器修饰的组件可作为页面入口组件&#xff1f;Look at the answer下面是ArkTS中类名、枚举名推荐的代码风格是 Look at the answer向服务器提交表单数据&#xff0c;以下哪种请求方式比较合适 Look at the answer使用http发起网络请求&#xff0c;需要以下哪种权限&…

maven【maven】技术详解

MavenMaven的本质是项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型&#xff08;POM&#xff09;Project Object Model&#xff1a;项目对象管理模型作用&#xff1a; 项目构建&#xff1a;提供标准的、跨平台的自动化项目构建方式依赖管理&#xff1a;方…

【操作系统-Day 25】死锁 (Deadlock):揭秘多线程编程的“终极杀手”

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

【嵌入式C语言】七

8.4函数的声明和定义声明一个函数意味着向编译器描述函数名、返回值、参数个数和类型&#xff0c;但并不会为函数分配存储空间定义一个函数意味着在声明变量的同时还要有具体的实现&#xff0c;并且会为函数分配存储空间8.5多源文件的函数声明和定义8.6预处理指令#Include#incl…

hardhat3 源神 -- 启动!

Hardhat 项目开发环境搭建完整指南 1. 从 GitHub 下载项目 # 使用 SSH 方式克隆&#xff08;需要配置 SSH key&#xff09; git clone gitgithub.com:NomicFoundation/hardhat.git# 或使用 HTTPS 方式 git clone https://github.com/NomicFoundation/hardhat.git# 进入项目目录…

遇到 Git 提示大文件无法上传确实让人头疼

遇到 Git 提示大文件无法上传确实让人头疼&#xff0c;但别担心&#xff0c;我们可以一步步来解决。为了让你更清晰地了解整个流程&#xff0c;我先用一个表格来概括主要步骤&#xff1a;步骤核心操作关键命令/工具示例 (用于删除历史中的大文件)1. 定位大文件使用 Git 命令或工…

机器人控制器开发(传感器层——奥比大白相机适配)

编译OrbbecSDK_ROS2的代码 执行命令 colcon buildros2 launch orbbec_camera dabai.launch.py问题1&#xff1a; 运行时报错&#xff1a; [component_container-1] [ERROR] [1757153916.450795107] [camera.camera_container]: Failed to load library: Could not load library…

C语言(长期更新)第15讲 指针详解(五):习题实战

C语言&#xff08;长期更新&#xff09;第15讲 指针详解&#xff08;五&#xff09;&#xff1a;习题实战 跟着潼心走&#xff0c;轻松拿捏C语言&#xff0c;困惑通通走&#xff0c;一去不回头~欢迎开始今天的学习内容&#xff0c;你的支持就是博主最大的动力。博主主页&#…

数据仓库概要

什么是数据仓库&#xff1f; 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策。 核心特征 1. 面向主题 数据仓库围绕核心业务主题&#xff08;如客户、产品、销售、财务&#xff09;来组织数据&#xff0c;而不是围绕具体的…

python库 Py2exe 的详细使用(将 Python 脚本变为Windows独立软件包)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、Py2exe 概述 1.1 Py2exe介绍 1.2 Py2exe安装 1.3 替代工具推荐 二、基础使用 2.1 编写打包脚本 2.2 执行打包命令 2.3 完整案例 2.4 配置选项详解 2.5 构建和分发 三、高级配置 3.1 包含隐藏导入 3.2 处理特殊包…

CuTe C++ 简介02,gemm_device cuda kernel 的实现

《CuTe C 简介01&#xff0c;从示例开始 》 中&#xff0c;最后看到了 计算 gemm 的cuda kernel&#xff0c;使用 NVIDIA CUTLASS 的 CUTe (CUDA Tile) 库实现的高性能 GEMM (通用矩阵乘法) CUDA kernel。接下来解释一下这个内核的各个部分。文末再贴一遍代码&#xff0c;方便查…

万代《宝可梦》主题新品扭蛋公开!史上最大尺寸

使用jQuery的常用方法与返回值分析 jQuery是一个轻量级的JavaScript库&#xff0c;旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍一些常用的jQuery方法及其返回值&#xff0c;帮助开发者更好地理解和运用这一强大的库。 1. 选择器方法 jQuery提供了多种…

【FastDDS】Layer Transport ( 05-Shared Memory Transport)

6.4 共享内存传输 共享内存&#xff08;SHM&#xff09;传输依靠主机操作系统提供的共享内存机制&#xff0c;实现了在同一处理单元/机器上运行的实体之间的快速通信。注意 Fast DDS 利用域参与者&#xff08;DomainParticipant&#xff09;的 GuidPrefix_t 来识别在同一主机上…

记 2025/9/6

人工智能常见的模型按照处理问题分为6大类&#xff1a;处理权重问题的权重模型、处理状态问题的状态模型、处理序列问题的问题模型、处理表示问题的表示模型、处理相似度的相似模型、处理分类问题的分类模型。权重是计算特定状态下事物的重要性。状态问题是刻画权重动态变化的过…

开启Python之路,第一节学习大纲-从入门到进阶

前端开启Python之路&#xff0c;前端有没有必要卷后端技术&#xff0c;欢迎各位大神批评指正 第一阶段&#xff1a;基础入门 (打好根基) 目标&#xff1a; 理解编程基本概念&#xff0c;掌握 Python 核心语法&#xff0c;能编写简单的脚本程序。 1、环境搭建与开发工具 安装 Py…

webshell及冰蝎双击无法打开?

什么是webshell&#xff1f; web:万维网 shell&#xff1a;是指一种应用程序&#xff0c;为用户和系统之间建立连接&#xff0c;通过这个界面访问操作系统内核的服务 webshell:是以asp、aspx、php、jsp或者cgi等网页文件形式存在的一种命令执行环境&#xff0c;也可以将其称做…