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;

相关推荐
tryCbest19 分钟前
Linux系统下安装使用Redis
linux·运维·redis
AuroBreeze2 小时前
xv6-2023 - primes Lab
linux·运维·服务器
DIY机器人工房2 小时前
NAT 模式、命令行版、桥接模式方式给ubuntu虚拟机配网步骤:
linux·网络协议·ubuntu·嵌入式·桥接模式·diy机器人工房
wdfk_prog3 小时前
[Linux]学习笔记系列 -- lib/sort.c 通用的排序库(Generic Sorting Library) 为内核提供标准的、高效的排序功能
linux·运维·c语言·笔记·stm32·学习·bug
jump_jump3 小时前
前端部署工具 PinMe
运维·前端·开源
闲人编程3 小时前
深入理解Python的`if __name__ == ‘__main__‘`:它到底做了什么?
服务器·数据库·python·main·name·魔法语句
黑马金牌编程3 小时前
简易分析慢 SQL 的流程和方法
linux·数据库·mysql·性能优化·性能分析·慢日志
什么半岛铁盒3 小时前
C++项目:仿muduo库高并发服务器---------LoopThreadPool模块和TcpServer模块的实现
linux·服务器·c++·mysql·ubuntu
それども4 小时前
本地怎么远程调试服务器
运维·服务器
Lin_Aries_04215 小时前
容器化 Flask 应用程序
linux·后端·python·docker·容器·flask