linux 安装 pgsql 以及 pgvector

linux 安装 pgsql 以及 pgvector

  1. 我用的是虚拟机 -> 切换数据源
    //备份
    sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    //切换阿里云数据源
    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    //清理缓存
    sudo yum clean all
    sudo yum makecache
    //验证新源是否可用
    sudo yum repolist

//示例

提示中如果显示的是你切换的数据源,即成功了

  1. 下载pgsql

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo yum install -y postgresql15-server

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

sudo systemctl enable postgresql-15

sudo systemctl start postgresql-15

ps:start的时候注意看日志,如果出现了日志(包含error的时候代表启动失败了,就先别执行下去了,去看日志)

日志位置是:/var/lib/pgsql/15/data/log

我遇到的报错是:

2024-11-06 13:55:56.621 CST [6292] 日志: 正在监听IPv6地址"::1",端口 5432

2024-11-06 13:55:56.621 CST [6292] 日志: 正在监听IPv4地址"127.0.0.1",端口 5432

2024-11-06 13:55:56.634 CST [6292] 日志: 在Unix套接字 "/run/postgresql/.s.PGSQL.5432"上侦听

2024-11-06 13:55:56.648 CST [6292] 致命错误: 无法打开锁文件 "/tmp/.s.PGSQL.5432.lock": 权限不够

2024-11-06 13:55:56.652 CST [6292] 日志: 数据库系统已关闭

解决办法:

修改权限

sudo chmod 1777 /tmp

1777权限表示所有用户都可以读、写和执行,并且设置了粘滞位(sticky bit),防止用户删除其他用户的文件。

删除该锁文件

sudo rm /tmp/.s.PGSQL.5432.lock

然后重启

sudo systemctl start postgresql-15

//其他命令,不用执行

sudo systemctl status postgresql-15

sudo systemctl stop postgresql-15

sudo systemctl restart postgresql-15

  1. 安装完成后,登录数据库
    su - postgres

//进入pgsql命令行

psql

//修改pgsql密码

ALTER USER postgres WITH PASSWORD 'qwer@1234'

//修改linux密码

sudo passwd -d postgres

sudo -u postgres passwd

  1. 下载pgvector

创建用户

CREATE USER test1 WITH PASSWORD '123456';

ALTER USER test1 WITH PASSWORD '123456'

创建数据库

CREATE DATABASE vectdb OWNER test1;

赋权

GRANT ALL PRIVILEGES ON DATABASE vectdb TO test1;

添加 superuser 权限,用于安装 pgvector 插件

alter user test1 with superuser;

本地登录

psql -U test1 -h localhost -p 5432 -d vectdb

创建插件

CREATE EXTENSION vector;

创建一个带有向量类型的表

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

写入一条数据

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

向量检索

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

配置PostgreSQL 外网访问

cd /var/lib/pgsql/15/data/
vim postgresql.conf

#将监听地址修改为*,默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行

listen_addresses='*'
vim pg_hba.conf

在文件尾部加入,注意,开启所有外网都能访问时,服务容易被攻击

host all all 0.0.0.0/0 md5

重启PostgreSQL服务

sudo systemctl restart postgresql-15

#查看所有数据库

\l

#切换当前数据库

\c vectdb

#查看当前数据库下所有表

\d

#退出数据库

\q

查询配置文件所在位置

show config_file;

查询数据储存目录

show data_directory;

相关推荐
疯狂飙车的蜗牛29 分钟前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程1 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
Michaelwubo3 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07133 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<3 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟3 小时前
centos-stream9系统安装docker
linux·docker·centos
好像是个likun3 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
LIKEYYLL5 小时前
GNU Octave:特性、使用案例、工具箱、环境与界面
服务器·gnu
云云3215 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵