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;

相关推荐
章老师说18 小时前
BFE v1.8.3 正式发布:AI网关能力再升级,企业级七层负载均衡持续进化
运维·人工智能·负载均衡
星释1 天前
鸿蒙智能体开发实战:23.常见问题
服务器·华为·ai·harmonyos·鸿蒙·智能体
天空'之城1 天前
Linux 系统编程 22:五种 IO 模型全解
linux
小张成长计划..1 天前
【Linux】10:冯·诺依曼体系结构和操作系统
linux·运维·服务器
悦儿遥遥雨11 天前
PXE + Kickstart 无人值守批量部署系统
linux·javascript·nginx
m0_564876841 天前
没有公网IP的情况下,怎么进行远程连接两个电脑
服务器·tcp/ip·负载均衡
Imagine Miracle1 天前
【WSL】让WSL2后台持久运行不自动关闭的解决方案
linux·windows·wsl
兔C1 天前
Linux 命令行入门学习资料 day_2
linux·运维·服务器
eggcode1 天前
Linux命令基础与操作技巧
linux
多巴胺梦想家1 天前
事务与并发控制:当多人同时操作数据库
服务器·数据库·oracle