当前位置: 首页 > news >正文

Linux系统安装PGSQL实现向量存储

PostgreSQL(常简称为 PGSQL 或 Postgres)是一款功能强大、开源免费、高度可扩展的关系型数据库管理系统(RDBMS),以稳定性、安全性和对 SQL 标准的严格遵循而闻名,同时支持丰富的 NoSQL 特性(如 JSON、数组、地理数据等),广泛应用于企业级应用、大数据分析、云服务等场景。

本文通过宝塔面板在服务器中安装PGSQL、PGVector插件实现向量存储。

1. 宝塔安装

1)在宝塔面板中安装PostgreSQL管理器,这是宝塔用于安装PGSQL的插件。

image-20251011121621564

2)安装PGSQL数据库,我安装的是 16.1 版本,下面的教程讲的也是 16.1 版本的。

image-20251011121818109

3)在开放宝塔以及服务器端口号: 5432,并设置允许外部访问所有数据库。

image-20251011122113405

image-20251011122643098

image-20251011123231343

4)打开navicate,连接服务器数据库发现连接成功

image-20251011123346211

2. 安装 pgvector 插件

1)下载pgvector插件:

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

postgresql14 对应 pgvector0.5 的版本

postgresql15 对应 pgvector0.6 的版本

postgresql15 对应 pgvector0.7 的版本

2)将压缩包传到服务器pgsql目录

image-20251011123631927

3)编译安装:在pgvector目录中打开宝塔终端

# 临时设置环境变量
export PATH=/www/server/pgsql/bin:$PATH
#验证路径是否设置成功:
which psql
# 编译安装
make
make install

image-20251011124050045

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

-- 启用 vector 扩展
CREATE EXTENSION vector;-- 验证扩展是否安装成功
SELECT * FROM pg_extension;

image-20251011124344199

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';
库已安装的扩展列表,检查 vector 是否在列
\dx-- 或者查询扩展详情
SELECT * FROM pg_extension WHERE extname = 'vector';
http://www.dtcms.com/a/469217.html

相关文章:

  • 跨语言协作新范式:阿里云Qwen-MT与DooTask的翻译技术突破
  • LLM 笔记 —— 04 为什么语言模型用文字接龙,图片模型不用像素接龙呢?
  • ubuntu-20.04.6升级OpenSSH_10.2p1
  • redis lua脚本(go)调用教程以及debug调试
  • shopnc本地生活o2o网站源码有声小说网站开发
  • OpenHarmony 之Telephony电话服务技术详解:架构设计与Modem厂商库集成机制
  • 医疗AI记忆系统的分层存储机制:长期病史与短期会诊记忆的编程实现(代码部分)
  • Vue 基础认知全解析:从版本演进到生态定位
  • 苏州建网站的公司平台收费标准wordpress客户端源码分析
  • VibeCut - 智能剪辑探索与实现
  • Linux5:Linux网络编程
  • 大模型为什么会表现出逻辑性推理
  • 除了MySQL连接命令,实现自动化备份还需哪些步骤?
  • 【GD32】硬件I2C
  • 光学影像“精准导航”交叉导轨的关键作用
  • 四川省城乡住房和城乡建设厅网站注册个人订阅号
  • Linux 进程通信——基于建造者模式的信号量
  • 在Mac上安装CocoaPods问题处理
  • 深入 Spring 条件化配置底层:从硬编码到通用注解的实现原理
  • SpringBoot之配置文件
  • Linux中kmalloc内存分配函数的实现
  • 【Spring Security】Spring Security 概念
  • 杂记 12
  • 织梦程序如何搭建网站洛阳凯锦腾网业有限公司
  • Socket网络编程(2)-command_server
  • vscode 连接远程服务器同步方法
  • 传统数据安全措施与云计算数据安全的区别
  • Linux下如何在vim里使用异步编译和运行?
  • Python高效实现Excel转PDF:无Office依赖的轻量化方案
  • 做网站PPPOE网络可以吗一个好网站设计