在 CentOS 上“修复 PostgreSQL”要看具体坏了什么,下面按常见场景给你一套排查与修复思路,你可以对号入座。
systemctl status postgresql
# 或(老版本)
service postgresql status
查看是否:
journalctl -u postgresql -xe
# 或
cat /var/lib/pgsql/data/log/*.log
chown -R postgres:postgres /var/lib/pgsql
chmod 700 /var/lib/pgsql/data
netstat -tunlp | grep 5432
vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
vi /var/lib/pgsql/data/pg_hba.conf
示例(允许所有 IP):
host all all 0.0.0.0/0 md5
重启:
systemctl restart postgresql
⚠️ 不要直接删除 data 目录
su - postgres
pg_resetwal /var/lib/pgsql/data
仅适用于:事务日志损坏,但数据文件还在
如果有备份:
su - postgres
psql < backup.sql
# 或
pg_restore -d dbname backup.dump
yum remove postgresql*
yum install postgresql-server postgresql-contrib
postgresql-setup initdb
systemctl start postgresql
⚠️ 会清空原数据(除非你备份了 /var/lib/pgsql)
如果 数据库非常重要:
/var/lib/pgsqlpg_dump / pg_basebackup为了给你更精确的修复方案,请告诉我:
我可以一步步带你修。