背景:本人本地搭建了postgresql-13数据库,为方便配置,直接将环境镜像到云服务器上。部署完成后,发现原本正常的数据库突然启动不了,报错为加载模块失败。
报错主要信息如下(通过systemctl status 数据库服务名称 或 journalctl -xe 可查看):
-- Unit postgresql-13.service has begun starting up.
Apr 17 03:38:03 localhost.localdomain postmaster[16000]: 2023-04-17 03:38:03.816 EDT [16000] LOG: redirecting log output to lo
Apr 17 03:38:03 localhost.localdomain postmaster[16000]: 2023-04-17 03:38:03.816 EDT [16000] HINT: Future log output will appe
Apr 17 03:38:03 localhost.localdomain systemd[1]: postgresql-13.service: main process exited, code=exited, status=1/FAILURE
Apr 17 03:38:03 localhost.localdomain systemd[1]: Failed to start PostgreSQL 13 database server.
-- Subject: Unit postgresql-13.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit postgresql-13.service has failed.
--
-- The result is failed.
Apr 17 03:38:03 localhost.localdomain systemd[1]: Unit postgresql-13.service entered failed state.
Apr 17 03:38:03 localhost.localdomain polkitd[683]: Unregistered Authentication Agent for unix-process:15989:2015085 (system bu
Apr 17 03:38:03 localhost.localdomain systemd[1]: postgresql-13.service failed.
解决办法:环境迁移后,数据库对应的配置文件如果填写的是具体的IP地址,必须对其进行更改,数据库配置文件的默认位置为 /var/lib/pgsql/13/data/postgresql.conf ,涉及的主要字段为“listen_addresses”和“port”,实际使用中,建议把IP替换成域名(实测中发现,注释虽然注明的是填写IP,但是填写域名依然有效,前提是你已经做好了DNS解析)。