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;

相关推荐
yaoxin5211231 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin1 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
sinat_384241095 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ5 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream5 小时前
Linux的桌面
linux
xiaozhiwise6 小时前
Makefile 之 自动化变量
linux
Kkooe6 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒7 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
意疏8 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker