Ubuntu 22.04 安装 PostgreSQL + AGE + pgvector 完全指南

本教程将指导你在 Ubuntu 22.04 服务器上安装 PostgreSQL 数据库,并为其添加 AGE 图数据库扩展和 pgvector 向量搜索扩展。

1. 安装 PostgreSQL

首先更新系统并安装 PostgreSQL:

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装必要的依赖
sudo apt install -y wget curl gnupg2 software-properties-common

# 添加 PostgreSQL 官方仓库
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# 导入 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# 更新包列表
sudo apt update

# 安装 PostgreSQL (这里安装15版本,你也可以选择其他版本)
sudo apt install -y postgresql-15 postgresql-client-15 postgresql-server-dev-15

# 启动 PostgreSQL 服务
sudo systemctl start postgresql
sudo systemctl enable postgresql

2. 安装 AGE 图数据库扩展

AGE 是 PostgreSQL 的图数据库扩展,安装步骤如下:

# 安装必要的构建依赖
sudo apt install -y build-essential cmake libreadline-dev zlib1g-dev flex bison

# 克隆 AGE 源码
git clone https://github.com/apache/age.git
cd age

# 检出最新稳定版本 (请查看 GitHub 获取最新版本号)
git checkout release/PG15/1.4.0

# 构建并安装
make install
cd ..

3. 安装 pgvector 向量搜索扩展

pgvector 为 PostgreSQL 添加了向量相似度搜索功能:

# 克隆 pgvector 源码
git clone https://github.com/pgvector/pgvector.git
cd pgvector

# 检出最新版本
git checkout v0.6.0

# 构建并安装
make
sudo make install
cd ..

4. 配置 PostgreSQL 以使用扩展

# 切换到 postgres 用户
sudo -u postgres psql

-- 在 PostgreSQL 中执行以下命令
CREATE DATABASE graphdb;
\c graphdb

-- 安装 AGE 扩展
CREATE EXTENSION age;
LOAD 'age';
SET search_path = ag_catalog, "$user", public;

-- 安装 pgvector 扩展
CREATE EXTENSION vector;

-- 验证安装
\dx

5. 配置 PostgreSQL 以允许远程连接 (可选)

如果需要远程访问数据库:

# 编辑配置文件
sudo nano /etc/postgresql/15/main/postgresql.conf

# 找到并修改以下行
listen_addresses = '*'  # 默认为 'localhost'

# 编辑客户端认证配置
sudo nano /etc/postgresql/15/main/pg_hba.conf

# 在文件末尾添加 (根据你的安全需求调整)
host    all             all             0.0.0.0/0               md5

# 重启 PostgreSQL
sudo systemctl restart postgresql

6. 创建用户和设置密码

sudo -u postgres psql

-- 创建新用户
CREATE USER your_username WITH PASSWORD 'your_password';

-- 授予权限
GRANT ALL PRIVILEGES ON DATABASE graphdb TO your_username;

-- 修改 postgres 用户密码 (可选)
ALTER USER postgres WITH PASSWORD 'new_password';

7. 验证安装

psql -h localhost -U your_username -d graphdb -W

-- 在 psql 中测试 AGE
SELECT create_graph('test_graph');

-- 测试 pgvector
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;

8. 安装后的优化 (可选)

# 调整 PostgreSQL 共享内存
sudo nano /etc/postgresql/15/main/postgresql.conf

# 根据你的服务器内存调整以下参数 (示例为4GB内存服务器)
shared_buffers = 1GB
work_mem = 16MB
maintenance_work_mem = 256MB
effective_cache_size = 3GB

# 重启 PostgreSQL
sudo systemctl restart postgresql

常见问题解决

  1. 扩展加载失败

    • 确保 PostgreSQL 版本与扩展版本兼容

    • 检查 /usr/lib/postgresql/15/lib/ 目录下是否有 age.so 和 vector.so 文件

  2. 权限问题

    • 确保 postgres 用户有权限访问扩展目录

    • 检查 PostgreSQL 日志 /var/log/postgresql/postgresql-15-main.log

  3. 构建错误

    • 确保安装了所有依赖项

    • 尝试清理并重新构建 (make clean && make)

总结

你现在已经在 Ubuntu 22.04 上成功安装了带有 AGE 图数据库扩展和 pgvector 向量搜索扩展的 PostgreSQL。这两个强大的扩展可以让你在同一个数据库中同时处理关系型数据、图数据和向量数据,非常适合构建现代应用程序。

你可以开始探索 AGE 的图查询语法和 pgvector 的向量相似度搜索功能,为你的应用添加图分析和AI能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林成长记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值