Postgresql安装配置

1. linux centos系统下安装postgresql

bash 复制代码
yum install -y postgresql postgresql-server

默认直接yum install postgresql,postgresql-server会安装成系统自带的版本,如果需要安装更新的最新版本,需要先安装 PGDG 仓库再装服务端(以 PG16 为例):

bash 复制代码
# 安装PGDG仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 查看有哪些可用的版本:
yum repolist | grep pgdg 

# 安装server和客户端,这里的16替换成上面列出来的可用版本
sudo yum install -y postgresql16 postgresql16-server

2. 初始化数据目录生成

`/var/lib/pgsql/16/data`:

bash 复制代码
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

3. 启动服务并设置自启:

bash 复制代码
sudo systemctl enable --now postgresql-16

# 如果安装的是15
sudo systemctl enable --now postgresql-15 

完成后再在 `/var/lib/pgsql/16/data` 找到 `postgresql.conf`、`pg_hba.conf` 等配置。如果只执行了 `yum install postgresql`,那仅安装了客户端二进制,找不到目录是正常的。

4. 初始化与角色管理

bash 复制代码
    sudo -u postgres psql
    -- 在 psql 中:
    CREATE ROLE appuser WITH LOGIN PASSWORD 'StrongPass' NOSUPERUSER;
    CREATE DATABASE appdb OWNER appuser ENCODING 'UTF8';
    \q

5. 调整访问控制:

原则:pg_hba.conf 的规则是从上到下匹配,一旦命中就决定认证方式,所以需要按照"最严格→最宽松"的顺序编排,明确数据库、角色、来源网段和认证机制。常用方式包括 scram-sha-256(推荐)、md5(兼容旧客户端)、cert(客户端证书)、trust(仅限本地自动化,非常谨慎)。

bash 复制代码
# "local" is for Unix domain socket connections only
local   postgres        postgres                                trust
......
# 中间部分的保持默认值。修改replication访问控制如下
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   all             all                                     scram-sha-256
host    appdb           appuser         10.0.0.5/32             scram-sha-256
host    testdb          all             10.0.0.5/24             scram-sha-256
  • postgresql.conflisten_addresses = 'localhost,10.0.0.5'(按需添加)、port = 5432
  • pg_hba.conf:增加 host appdb appuser 10.0.0.5/32 scram-sha-256
  • 若需内网访问,添加相应网段并使用 md5/scram
bash 复制代码
# 启动与开机自启:
sudo systemctl enable --now postgresql(或 postgresql-16)。
# 验证:
psql -h localhost -U appuser -d appdb -W
# 输入设置的强密码,以执行下面语句确认连接正常。
SELECT version(); 
# 退出
\q

常用运维要点

  • 备份 :Redis 使用 BGSAVE/SAVE 或复制 dump.rdb/appendonly.aof;PostgreSQL 定期 pg_dump -Fc appdb > backup.dump,或配置 pg_basebackup 与 WAL 归档。

  • 日志与监控 :启用 Redis slowlogMONITOR 仅在调试短期使用;PostgreSQL 通过 log_min_duration_statement 记录慢查询,可配合 pg_stat_statements

  • 安全 :仅在可信网段开放端口;必要时用内置 TLS(Redis tls-port + 证书,PostgreSQL ssl = on);不在配置文件中存储明文密码,使用环境变量或 secrets 管理。

  • 服务管理 :常用命令 sudo systemctl status redis-server / postgresql; 重启后检查日志 /var/log/redis/redis-server.log 与 PostgreSQL journalctl -u postgresql

  • 排障提示

    • Redis 拒绝连接:检查 bind/protected-mode 配置、firewall;密码错误会报 NOAUTH
    • PostgreSQL 无法登陆:确认 pg_hba.conf 顺序和认证方式;修改后 sudo systemctl reload postgresql 生效。
    • 端口占用:ss -ltnp | grep 6379/5432 查清冲突进程后调整端口或释放。
相关推荐
温暖小土7 小时前
ClickHouse vs Apache Doris:2026年实时OLAP数据库选型深度解析
数据库·数据仓库·clickhouse·apache
专注数据的痴汉8 小时前
「数据获取」全国民用运输机场吞吐量排名(2006-2024)
java·大数据·服务器·数据库·信息可视化
海边的椰子树8 小时前
非常方便的MySQL迁移数据ClickHouse工具
数据库·mysql·clickhouse·迁移
yongui478348 小时前
使用C#实现Excel实时读取并导入SQL数据库
数据库·c#·excel
JZC_xiaozhong8 小时前
分析型数据库 ClickHouse 在数据中台中的集成
大数据·数据库·clickhouse·架构·数据一致性·数据孤岛解决方案·数据集成与应用集成
航Hang*8 小时前
第3章:复习篇——第3节:数据查询与统计---题库
数据库·笔记·sql·学习·mysql·期末·复习
廋到被风吹走8 小时前
【数据库】【MySQL】事务隔离深度解析:MVCC 实现与幻读解决机制
android·数据库·mysql
Star Learning Python8 小时前
MySQL面试的基础知识
数据库·sql
知识分享小能手8 小时前
Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)
数据库·学习·oracle
aigcapi8 小时前
中转API哪家好?2026主流服务商横向测评+全场景选型指南
数据库·api