在 CentOS 上修复 PostgreSQL 错误,需要先明确错误类型和现象。下面我按“常见错误 → 排查步骤 → 修复方法”来给你一个系统性的指南,你可以对照自己的情况处理。
systemctl status postgresql
# 或(取决于版本)
systemctl status postgresql-14
查看是否:
PostgreSQL 日志是定位问题的核心:
# 常见路径
/var/lib/pgsql/data/log/
/var/lib/pgsql/14/data/log/
# 或
journalctl -u postgresql
常见日志错误包括:
could not connect to serverFATAL: role does not existpermission denieddatabase is not accepting commands错误示例
Job for postgresql.service failed
排查
journalctl -xe
常见原因
修复
chown -R postgres:postgres /var/lib/pgsql/data
chmod 700 /var/lib/pgsql/data
netstat -tunlp | grep 5432
若被占用:
vi /var/lib/pgsql/data/postgresql.conf
port = 5433
可能原因
修复监听
listen_addresses = '*'
防火墙
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
编辑:
vi /var/lib/pgsql/data/pg_hba.conf
示例(本地信任):
local all all trust
host all all 127.0.0.1/32 md5
修改后重启:
systemctl restart postgresql
切勿直接删除数据!
尝试:
su - postgres
pg_ctl start -D /var/lib/pgsql/data
若报:
database files are incompatible
可能是版本不一致。
CentOS 常见:
确认版本:
psql --version
systemctl enable postgresql
systemctl restart postgresql
psql -U postgres
请把以下信息发我:
cat /etc/centos-release)我可以直接给你对应命令级修复方案。