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;

相关推荐
一个网络学徒9 分钟前
MGRE综合实验
运维·服务器·网络
守望时空3315 分钟前
RustDesk搭建指南
linux
C++ 老炮儿的技术栈19 分钟前
在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
linux·运维·c++·git·ubuntu·github·visual studio
墨痕砚白29 分钟前
VMware Workstation Pro虚拟机的下载和安装图文保姆级教程(附下载链接)
服务器·windows·vmware·虚拟机
白鹭1 小时前
基于LNMP架构的分布式个人博客搭建
linux·运维·服务器·网络·分布式·apache
java叶新东老师1 小时前
linux 部署 flink 1.15.1 并提交作业
linux·运维·flink
程序员JerrySUN2 小时前
Linux系统架构核心全景详解
linux·运维·系统架构
无敌的牛2 小时前
Linux文件理解,基础IO理解
linux·运维·服务器
angushine2 小时前
鲲鹏服务器logstash采集nginx日志
运维·服务器·nginx