修复 CentOS 上的 PostgreSQL,通常取决于具体故障现象。下面我按常见问题 → 排查 → 修复方案的结构给你一个通用修复指南,你可以对照使用;如果愿意,也可以把报错日志贴出来,我可以更精准地帮你定位。
systemctl status postgresql
# 或(取决于版本)
systemctl status postgresql-14
常见状态:
active (running) ✅failed ❌inactive (dead) ❌journalctl -xe -u postgresql
# 或
cat /var/lib/pgsql/14/data/log/postgresql-*.log
data directory "/var/lib/pgsql/14/data" has wrong ownership
✅ 修复:
chown -R postgres:postgres /var/lib/pgsql/14/data
chmod 700 /var/lib/pgsql/14/data
systemctl restart postgresql-14
could not bind IPv4 address "0.0.0.0": Address already in use
✅ 检查:
ss -lntp | grep 5432
✅ 解决:
/var/lib/pgsql/14/data/postgresql.confport = 5433
FATAL: could not load configuration file
✅ 检查语法:
su - postgres
/usr/pgsql-14/bin/postgres -D /var/lib/pgsql/14/data --check
su - postgres
psql
ALTER USER postgres WITH PASSWORD 'new_password';
# postgresql.conf
listen_addresses = '*'
vim /var/lib/pgsql/14/data/pg_hba.conf
添加:
host all all 0.0.0.0/0 md5
systemctl restart postgresql-14
su - postgres
/usr/pgsql-14/bin/pg_checksums -D /var/lib/pgsql/14/data
systemctl stop postgresql-14
su - postgres
/usr/pgsql-14/bin/pg_resetwal -f /var/lib/pgsql/14/data
systemctl start postgresql-14
⚠️ 不建议生产环境直接使用
yum install postgresql-server
postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql
dnf install postgresql-server
postgresql-setup --initdb
systemctl enable postgresql
systemctl start postgresql
| 检查项 | 命令 |
|---|---|
| 服务状态 | systemctl status postgresql |
| 端口 | ss -lntp |
| 日志 | journalctl -xe |
| 权限 | ls -ld /var/lib/pgsql |
| 配置 | postgresql.conf / pg_hba.conf |
你可以直接告诉我:
我可以直接给你一步一步的修复命令 ✅