记一次postgresql-15与PGVector安装
公司有一个项目用到向量数据库,同开发沟通使用postgresql与PGVector,步骤看似简单,但也遇到了很多问题,特此记录一下完整安装过程与问题
一、centos 7.6部署postgresql-15
附上下载地址
https://www.postgresql.org/download/linux/redhat/
https://yum.postgresql.org/15/redhat/rhel-7-x86_64/repoview/postgresql15-devel.html
下载:
postgresql15-libs-15.7-1PGDG.rhel7.x86_64.rpm
postgresql15-15.7-1PGDG.rhel7.x86_64.rpm
postgresql15-server-15.7-1PGDG.rhel7.x86_64.rpm
1、postgress数据库安装
有外网可以用yum没有的话下载rpm安装
rpm -ivh postgresql15-libs-15.7-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-15.7-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql15-server-15.7-1PGDG.rhel7.x86_64.rpm
报错处理
安装postgresql15-server时缺少libzstd-1.5.2-1.el7.x86_64.rpm依赖,需要手动下载一下再执行安装操作:
rpm -ivh libzstd-1.5.2-1.el7.x86_64.rpm
安装完成后再次执行postgresql的安装命令:
sudo yum install -y postgresql15-server
再依次执行官网中的命令即可完成安装
###附上 libzstd-1.5.2-1.el7.x86_64.rpm 的安装包:
链接:https://pan.baidu.com/s/18vbU5D5NNCmOL1ZGlt0kxg
提取码:qgzb
2、修改配置
vi /usr/lib/systemd/system/postgresql-15.service
# 修改存储目录
Environment=PGDATA=/opt/postgres/data/
3、创建目录并修改权限
mkdir -p /data/postgres/data
chown -R postgres: postgres
chmod 700 data/
4、初始化数据库
/usr/pgsql-15/bin/postgresql-15-setup initdb
开放数据库连接端口
firewall-cmd --state
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
5、启动服务并设置开机自启
systemctl start postgresql-15.service
systemctl status postgresql-15.service
6、修改管理员密码
su - postgres
psql
psql (15.7)
Type "help" for help.
postgres=# alter user postgres with password 'adWEFghe##7$4';
ALTER ROLE
7、设置允许远程登陆
vi /opt/postgres/data/postgresql.conf
# 修改下面行
listen_addresses = '*'
vi /opt/postgres/data/pg_hba.conf
# 在最后添加下面行
host all all 0.0.0.0/0 md5
# 重启服务,进行远程连接测试
systemctl restart postgresql-15.service
8、配置环境变量
vi ~/.bash_profile
[ -f /etc/profile ] && source /etc/profile
export PGHOME=/usr/pgsql-12/
export PGDATA=/var/lib/pgsql/12/data
export PGPORT=5432
export PGUSER=postgres
export PGHOST=127.0.0.1
export PATH=$PATH:$PGHOME/bin
# If you want to customize your settings,
# Use the file below. This is not overridden
# by the RPMS.
[ -f /var/lib/pgsql/.pgsql_profile ] && source /var/lib/pgsql/.pgsql_profile
二、安装 PGVector
1、首先需要安装postgresql15-devel。
rpm -ivh postgresql15-devel-15.7-1PGDG.rhel7.x86_64.rpm
####依赖比较多,部分rpm可以用阿里云镜像地址安装
##阿里云镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 下载163的base源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 如果没有wget程序则使用curl下载
# 快速生成缓存
sudo yum makecache fast
##国内的一些其他镜像源
https://blog.51cto.com/u_12895411/8583288
遇到错误:
Requires: llvm-toolset-7-clang >= 4.0.1。通过安装centos-release-scl-rh包,解决这个问题并继续安装postgresql。
1.1、安装 llvm-toolset-7-clang >= 4.0.1
安装SCL源
yum install -y centos-release-scl centos-release-scl-rh
Linux CentOs7系统scl镜像源失效如果失效配置scl国内源
在目录/etc/yum.repos.d中,备份CentOS-SCLo-scl.repo和??CentOS-SCLo-scl-rh.repo两个文件
# 备份
cp CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
cp CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak
配置CentOS-SCLo-scl.repo国内地址
vim /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
配置CentOS-SCLo-scl-rh.repo
vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
# 刷新缓存
yum repolist && yum clean all && yum makecache
安装llvm-toolset
yum install llvm-toolset-7-clang -y
1.2、安装 llvm5.0-devel >= 5.0
下载地址 :https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/
##顺序安装
rpm -ivh llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
rpm -ivh llvm5.0-5.0.1-7.el7.x86_64.rpm
rpm -ivh llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
1.3、重新安装
rpm -ivh postgresql15-devel-15.7-1PGDG.rhel7.x86_64.rpm
2、安装pgvector
2.1、下载
git clone --branch v0.7.0 https://github.com/pgvector/pgvector.git
2.2、进入下载目录
cd pgvector
3.3、编译安装
make && make install
3.4、启用 PGVector
登录PostgreSQL数据库,执行以下命令启用PGVector:
CREATE EXTENSION IF NOT EXISTS vector;
- 点赞
- 收藏
- 关注作者
评论(0)