本教程将指导你在 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
常见问题解决
-
扩展加载失败:
-
确保 PostgreSQL 版本与扩展版本兼容
-
检查
/usr/lib/postgresql/15/lib/
目录下是否有 age.so 和 vector.so 文件
-
-
权限问题:
-
确保 postgres 用户有权限访问扩展目录
-
检查 PostgreSQL 日志
/var/log/postgresql/postgresql-15-main.log
-
-
构建错误:
-
确保安装了所有依赖项
-
尝试清理并重新构建 (
make clean && make
)
-
总结
你现在已经在 Ubuntu 22.04 上成功安装了带有 AGE 图数据库扩展和 pgvector 向量搜索扩展的 PostgreSQL。这两个强大的扩展可以让你在同一个数据库中同时处理关系型数据、图数据和向量数据,非常适合构建现代应用程序。
你可以开始探索 AGE 的图查询语法和 pgvector 的向量相似度搜索功能,为你的应用添加图分析和AI能力。