“Debian 上 PostgreSQL 出错”是一个比较笼统的问题,不同错误对应不同修复方式。下面我按常见场景给你一套排查与修复指南,你可以对照自己的情况操作。
systemctl status postgresql
journalctl -u postgresql
# 或
cat /var/log/postgresql/postgresql-*.log
把具体报错信息记下来(例如:
could not connect to serverFATAL: data directory has wrong ownershipport 5432 already in use
)错误示例
FATAL: data directory "/var/lib/postgresql/15/main" has wrong ownership
修复
chown -R postgres:postgres /var/lib/postgresql
chmod 700 /var/lib/postgresql/15/main
systemctl restart postgresql
错误示例
could not bind IPv4 address "127.0.0.1": Address already in use
修复
ss -tulnp | grep 5432
杀掉占用进程,或修改端口:
nano /etc/postgresql/15/main/postgresql.conf
port = 5433
systemctl restart postgresql
错误示例
FATAL: Peer authentication failed for user "postgres"
修复(本地连接)
sudo -u postgres psql
或修改认证方式:
nano /etc/postgresql/15/main/pg_hba.conf
将:
local all all peer
改为:
local all all md5
systemctl reload postgresql
Debian 升级后常见(如 13 → 15)
修复(使用 pg_upgradecluster)
pg_lsclusters
pg_upgradecluster 13 main
症状
corrupted page修复思路
/usr/lib/postgresql/15/bin/postgres --single -D /var/lib/postgresql/15/main postgres
⚠️ 数据损坏不建议强行修,优先恢复备份。
# 1. 重启服务
systemctl restart postgresql
# 2. 检查配置语法
/usr/lib/postgresql/15/bin/postgres -D /var/lib/postgresql/15/main --check
# 3. 重装(不删数据)
apt install --reinstall postgresql
请把以下信息发我:
cat /etc/debian_version)我可以直接给你一步一步的修复命令。