阿里云ECS快速安装PostgreSQL17指南

服务器:阿里云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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值