一、安装 PostgreSQL 16
1. 通过 Homebrew 安装 PostgreSQL 16
打开终端,执行以下命令通过 Homebrew 安装指定版本的 PostgreSQL 16:
css
brew install postgresql@16
2. 配置环境变量
将 PostgreSQL 16 的可执行文件路径添加到环境变量,确保终端能直接识别 pg 相关命令(适配 zsh 终端,若使用 bash 需将 .zshrc 替换为 .bashrc):
bash
echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc
source .zshrc
3. 配置允许局域网访问
默认配置下 PostgreSQL 仅允许本地访问,若需局域网内其他设备连接,需修改配置文件:
bash
vi /opt/homebrew/var/postgresql@16/postgresql.conf
在文件中找到被注释的 listen_addresses 行,取消注释并修改为以下内容(监听所有网络接口,支持本地及局域网访问):
ini
listen_addresses = '*' # 监听所有IP,如需仅本地访问可改为'localhost'
# 注:修改后需重启服务才能生效
4. 启动 PostgreSQL 服务
使用 Homebrew 命令启动服务,该命令会自动配置开机自启:
sql
brew services start postgresql@16
验证启动状态:若终端无报错,可通过 brew services list 查看,postgresql@16 一行显示 started 即为成功。
5. 创建 PostgreSQL 超级用户角色
首先通过默认方式进入 PostgreSQL 命令行(默认连接系统自带的 postgres 数据库):
psql -d postgres
若终端提示符变为 postgres=#,说明成功进入命令行环境。执行以下 SQL 语句创建超级用户角色(替换密码为自定义密码):
sql
-- 创建 postgres 角色,赋予超级用户权限、创建数据库/角色权限,并设置密码
CREATE ROLE postgres WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD '你的自定义密码';
-- (可选)验证角色创建结果:列出所有角色信息
\du
-- 退出 PostgreSQL 命令行
\q
6. 修改认证规则(关键:确保密码登录生效)
编辑 pg_hba.conf 配置文件,调整认证方式为密码认证(替换默认的 peer/trust 模式):
bash
vi /opt/homebrew/var/postgresql@16/pg_hba.conf
找到对应配置行,修改或添加以下规则(覆盖原有同名配置):
python
# 本地socket连接:采用md5密码认证
local all all md5
# TCP/IP本地连接(127.0.0.1):采用md5密码认证
host all all 127.0.0.1/32 md5
# (可选)允许局域网内所有设备访问:采用md5密码认证(需提前配置listen_addresses='*')
host all all 0.0.0.0/0 md5
7. 重启服务使配置生效
修改完 postgresql.conf 和 pg_hba.conf 后,必须重启服务才能让配置生效:
css
brew services restart postgresql@16
二、安装并适配 pgvector 扩展
pgvector 是 PostgreSQL 的向量数据库扩展,需通过源码编译安装以适配本地 PostgreSQL 16 环境。
1. 安装编译依赖工具
首先安装 git、make、gcc 等编译必需的工具:
go
brew install git make gcc
2. 克隆 pgvector 源码并编译安装
通过 git 克隆源码,指定 PostgreSQL 16 的 pg_config 路径进行编译安装(确保适配当前安装的 PG 版本):
bash
# 克隆 pgvector 源码到本地
git clone https://github.com/pgvector/pgvector.git
# 进入源码目录
cd pgvector
# 编译:指定 PostgreSQL 16 的 pg_config 路径(关键:避免适配错误版本)
make PG_CONFIG=/opt/homebrew/opt/postgresql@16/bin/pg_config
# 安装到 PostgreSQL 16 扩展目录(需输入电脑开机密码)
sudo make install PG_CONFIG=/opt/homebrew/opt/postgresql@16/bin/pg_config
3. 验证 pgvector 编译安装结果
通过查看 PostgreSQL 16 扩展目录是否存在 vector 相关文件,验证安装是否成功:
bash
ls -la /opt/homebrew/opt/postgresql@16/share/postgresql@16/extension/ | grep vector
若输出中包含 vector.control 和 vector--x.x.x.sql(x.x.x 为版本号),说明编译安装成功。
4. 重启 PostgreSQL 并创建 pgvector 扩展
安装完成后需重启 PostgreSQL 服务,然后在数据库中创建 vector 扩展:
ini
# 重启 PostgreSQL 16 服务(修正原文档笔误:将@15改为@16)
brew services restart postgresql@16
# 进入 PostgreSQL 命令行
psql -d postgres -U postgres # -U 指定刚创建的 postgres 角色,需输入之前设置的密码
# 在命令行中创建 vector 扩展
CREATE EXTENSION IF NOT EXISTS vector;
若执行 CREATE EXTENSION IF NOT EXISTS vector; 后无报错,说明扩展创建成功。
5. 测试 pgvector 功能可用性
通过创建向量表、插入数据、查询数据的流程,验证 pgvector 是否正常工作:
sql
-- 1. 创建包含向量字段的测试表(vector(3) 表示3维向量)
CREATE TABLE test_vectors (
id SERIAL PRIMARY KEY,
vec vector(3)
);
-- 2. 插入2条3维向量测试数据
INSERT INTO test_vectors (vec) VALUES ('[1,2,3]'), ('[4,5,6]');
-- 3. 查询插入的数据,验证向量字段正常存储
SELECT * FROM test_vectors;
-- (可选)测试完成后删除测试表
DROP TABLE test_vectors;
-- (可选)退出命令行
\q
若上述 SQL 语句均能正常执行且无报错,说明 pgvector 已完全适配 PostgreSQL 16 并可用。