在CentOS7上安装PostgreSQL与pgvector向量插件指南

在当今AI驱动的世界中,处理向量数据变得越来越重要。pgvector作为PostgreSQL的扩展插件,使传统的关系型数据库具备了存储和查询向量数据的能力,为以下场景提供了强大支持:

  • 实现相似性搜索(如推荐系统)

  • 存储和查询AI模型生成的嵌入向量

  • 构建智能搜索应用

  • 创建基于内容的推荐引擎

一、安装PostgreSQL数据库

1、进入PostgreSQL官网获取执行命令

PostgreSQL: Downloads

进入官网选择下载版本

执行下面命令

命令解释

# 安装仓库RPM
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装PostgreSQL server
yum install -y postgresql15-server

# 初始化
/usr/pgsql-15/bin/postgresql-15-setup initdb
# 启动
systemctl start postgresql-15

# 设置为开机自启动
systemctl enable postgresql-15

2、修改PostgreSQL配置

修改postgresql.conf文件

vi /var/lib/pgsql/15/data/postgresql.conf

# 默认:

listen_addresses = 'localhost' ,仅允许本机连接

listen_addresses = '*'

修改pg_hba.conf文件

vi /var/lib/pgsql/15/data/pg_hba.conf

# 默认:

host all all 127.0.0.1/32 scram-sha-256

# 修改为

host all all 0.0.0.0/0 scram-sha-256

重启数据库

systemctl restart postgresql-15

3、修改PostgreSQL密码

# 切换到 PostgreSQL 系统用户

su - postgres

# 使用linux用户进入PostgreSQL交互终端

psql -U postgres

# 设置密码命令

\password

# 然后填入密码

4、开放防火墙端口

阿里云可在控制台开启

测试远程连接,在本地通过Navicat测试是否能连接

二、安装pgvector向量插件

1、安装PostgreSQL15开发工具包

# 安装PostgreSQL15开发工具包

yum install -y postgresql15-devel

# 如果上一步执行时报错,那么请先安装centos-release-scl-rh包,再安装PostgreSQL开发工具包 Error: Package: postgresql15-devel-15.5-1PGDG.rhel7.x86_64 (pgdg15) Requires: llvm-toolset-7-clang >= 4.0.1

# 安装centos-release-scl-rh包

yum install -y centos-release-scl-rh

如果安装有以下报错

Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

执行下面命令

sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
sudo yum clean all
sudo yum makecache

安装完后使用命令查看是否能获取pg_config

which pg_config

如未获取到,配置工具环境

# 安装默认地址为:/usr/pgsql-15/bin/

export PATH=$PATH:/usr/pgsql-15/bin/

再次执行,查看能否获取pg_config

2、安装插件vector

# 先安装git

yum install -y git

# 切换到/tmp目录,下载源码包

cd /tmp git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git

# 进入/tmp/pgvector目录

cd pgvector

#进行编译安装

make & make install

3、数据库使用vector,并测试

# 切换到 PostgreSQL 系统用户

sudo -i -u postgres

# 进入 PostgreSQL 交互终端

psql

# 创建demo数据库

create database demo;

# 切换到demo数据库

\c demo

# 安装vector扩展

CREATE EXTENSION vector;

# 创建测试表

CREATE TABLE test (id bigserial PRIMARY KEY, embedding vector(3));

# 插入测试数据

INSERT INTO test (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');

# 按与给定向量相似度(L2 distance)排序,显示前5条

SELECT * FROM test ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

执行如下:

### 安装 PostgreSQLpgvector 扩展 #### 1. 安装 PostgreSQL 首先,安装适用于 Ubuntu 的 PostgreSQL 数据库。根据版本需求选择合适的命令: ```bash sudo apt update sudo apt install postgresql postgresql-contrib postgresql-server-dev-14 ``` 如果需要更高版本的 PostgreSQL(如 PostgreSQL 15 或 16),可以使用如下命令: ```bash sudo apt install postgresql-server-dev-15 ``` 或 ```bash sudo apt install postgresql-server-dev-16 ``` 这将安装 PostgreSQL 及其开发工具包,为后续集成扩展做好准备 [^4]。 --- #### 2. 安装必要的依赖项 在开始编译 `pgvector` 前,请确保系统已安装所需的构建工具和 PostgreSQL 开发文件: ```bash sudo apt-get update sudo apt-get install -y build-essential postgresql-server-dev-14 ``` 对于其他 PostgreSQL 版本,请替换 `postgresql-server-dev-14` 为对应的版本号,例如 `postgresql-server-dev-15` 或 `postgresql-server-dev-16` [^1]。 --- #### 3. 克隆 `pgvector` 源码仓库并编译安装 接下来,从 GitHub 获取 `pgvector` 的源代码,并进行编译和安装: ```bash git clone https://github.com/pgvector/pgvector.git cd pgvector make sudo make install ``` 此步骤会将 `pgvector` 编译并安装PostgreSQL 的扩展目录中 [^3]。 --- #### 4. 配置 PostgreSQL 以启用 `pgvector` 扩展 编辑 PostgreSQL 的配置文件 `postgresql.conf`,通常位于 `/etc/postgresql/<version>/main/` 目录下: ```bash sudo vim /etc/postgresql/14/main/postgresql.conf ``` 找到 `shared_preload_libraries` 配置项,并添加 `vector` 到其中: ```conf shared_preload_libraries = 'vector' ``` 保存更改后重启 PostgreSQL 服务: ```bash sudo systemctl restart postgresql ``` 该操作确保 `pgvector` 被正确加载到 PostgreSQL 运行环境中 [^1]。 --- #### 5. 在数据库中启用 `pgvector` 扩展 切换到 `postgres` 用户并连接到目标数据库: ```bash sudo -i -u postgres psql ``` 在 SQL 环境中,执行以下命令以启用 `pgvector` 扩展: ```sql CREATE EXTENSION vector; ``` 完成此步骤后,即可在当前数据库中使用 `pgvector` 提供的功能 [^1]。 --- #### 示例:创建向量表并插入数据 ```sql -- 创建一个包含向量列的表 CREATE TABLE items ( id bigserial PRIMARY KEY, embedding vector(3) ); -- 插入向量数据 INSERT INTO items (embedding) VALUES ('[1,2,3]'); INSERT INTO items (embedding) VALUES ('[4,5,6]'); -- 查询给定向量最接近的条目 SELECT * FROM items ORDER BY embedding <-> '[1,1,1]' LIMIT 5; ``` 以上 SQL 命令演示了如何定义向量列、存储向量数据以及执行相似性搜索 [^1]。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值