服务器:阿里云ECS 2 核(vCPU)2 GiB 5 Mbps
操作系统:CentOS Stream 10 64位
一、安装
# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-10-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Disable the built-in PostgreSQL module:
sudo dnf -qy module disable postgresql
# Install PostgreSQL:
sudo dnf install -y postgresql17-server
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
sudo systemctl enable postgresql-17
sudo systemctl start postgresql-17
上述操作初始化后的数据库路径在 /var/lib/pgsql/17/data
二、验证
# 检查版本
psql --version
三、配置
修改postgresql.conf(路径:/var/lib/pgsql/17/data/postgresql.conf),关键参数调整如下:
listen_addresses = '*' # 允许远程访问
port = 5432 # 默认端口
max_connections = 100 # 最大连接数
shared_buffers = 25% # 共享缓冲区大小
work_mem = 64MB # 单个查询的工作内存
修改pg_hba.conf(控制访问权限)(路径:/var/lib/pgsql/17/data/pg_hba.conf)
允许IPv4 远程访问
# IPv4 local connections:
host all all 0.0.0.0/0 scram-sha-256
为超级用户修改密码
sudo -u postgres psql
ALTER USER postgres PASSWORD 'your_secure_password'; # 修改为你自己的密码
\q # 退出
重启后配置生效
sudo systemctl restart postgresql-17
配置防火墙
在阿里云ECS实例列表中,选中服务器实例,在安全组策略中放行 5432 端口

创建数据库和用户(可选)
- 创建超级用户
通过postgres用户创建具有管理权限的角色:sudo -u postgres psql CREATE ROLE admin WITH LOGIN PASSWORD 'admin_password' SUPERUSER CREATEDB CREATEROLE; \q - 创建普通数据库及用户
为应用创建专用数据库和用户(推荐最小权限原则):sudo -u postgres psql CREATE DATABASE myappdb; CREATE USER myappuser WITH PASSWORD 'myapppassword'; GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser; \q
以上配置完成后,就使用数据库连接工具或者代码连接
安装插件
sudo dnf install pgvector_17 # 安装pvector
sudo dnf install timescaledb_17 # 安装timescaledb
修改postgresql.conf(路径:/var/lib/pgsql/17/data/postgresql.conf),将 timescaledb 添加到 shared_preload_libraries 中
shared_preload_libraries = 'timescaledb'
重启服务
sudo systemctl restart postgresql-17
创建扩展
sudo -u postgres psql
CREATE EXTENSION vector;
CREATE EXTENSION IF NOT EXISTS timescaledb;
SELECT * FROM pg_extension; # 验证
\q # 退出
-------------------------
补充:安装vector和timescaledb是全局操作,创建EXTENSION是针对database维度的控制。
因此,执行CREATE EXTENSION的时候,需要切换到你想要启动“扩展”的database。
1925

被折叠的 条评论
为什么被折叠?



