postgresql向量数据插件--pgvector安装
本文为本人在安装pgvector中踩过的坑,已找到解决方法,现向大家分享。
一、版本
- pgvector:0.5.1
- postgresql数据库:14.0
- 操作系统:ubuntu18.04
二、数据库安装
因为在此之前安装过postgresql8.4.1,而pgvector只支持11.0及以后的版本,因此安装postgresql14.0
1. 在官网下载postgresql14.0的安装包
2.增加用户postgres
adduser postgres
3.解压安装
解压压缩包
tar zxvf postgresql-14.0.tar.gz
安装依赖包
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
sudo apt install libreadline-dev
sudo apt-get install zlib1g-dev
编译
cd postgresql-14.0
./configure --prefix=/usr/local/pgsql --enable-debug
sudo make && sudo make install
cd contrib #插件
sudo make && sudo make install
数据目录创建
sudo mkdir -p /var/postgresql/data
chown postgres:postgres /var/postgresql -r
chown postgres:postgres /usr/local/pgsql -r
切换用户
su postgres
环境变量设置
vi ~/.bash_profile
在~/.bash_profile中写入:
export pghome=/usr/local/pgsql
export pgdata=/var/postgresql/data
export path=$pghome/bin:$path
export manpath=$pghome/share/man:$manpath
export lang=en_us.utf8
export date=`date +"%y-%m-%d %h:%m:%s"`
export ld_library_path=$pghome/lib:$ld_library_path
alias rm='rm -i'
alias ll='ls -lh'
#alias pg_start='pg_ctl start -d $pgdata'
#alias pg_stop='pg_ctl stop -d $pgdata -m fast'
初始化数据库
initdb -d /var/postgresql/data
连接数据库服务
pg_ctl -d /var/postgresql/data start
三、pgvector安装
1. 从github上克隆下来
首先要安装git,详细可参考:安装git
cd /tmp
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git
此时可能会遇到拒绝连接
等待即可,因为可能是网络不好。。
2. 安装pgvector插件
cd pgvector/
make && sudo make install
此时可能会遇到makefile:48: /usr/lib/postgresql/10/lib/pgxs/src/makefiles/pgxs.mk: 没有那个文件或目录
make: *** 没有规则可制作目标“/usr/lib/postgresql/10/lib/pgxs/src/makefiles/pgxs.mk”。 停止。
这是因为环境配置没有配置好,查看pg_config在哪
which pg_config
可以看到我的pg_config的绝对地址,但其实它应该在/usr/local/pgsql/bin/pg_config
所以以下有两种方法可以解决:
- 在命令行export设置临时环境变量
sudo make pg_config=/usr/local/pgsql/bin/pg_config
sudo make pg_config=/usr/local/pgsql/bin/pg_config install
- 在~/.bash_profile修改环境变量
vi ~/.bash_profile
在文件内加入
export pg_config=/usr/local/pgsql/bin/pg_config
安装成功如图
3. 开始使用pgvector
启用pgsql命令行
psql
或
pgsql
创建扩展
create extension vector;
create table items (id bigserial primary key, embedding vector(3));
insert into items (embedding) values ('[1,2,3]'), ('[4,5,6]');
此处有一个特别提醒,不是pgvector,而是vector
运行create成功后
查看items表
发表评论