在 CentOS 上设置 PostgreSQL 开机自启动,主要取决于你使用的 CentOS 版本 和 PostgreSQL 安装方式(官方 RPM / 源码 / 第三方仓库)。下面按常见情况说明。
一般官方 RPM 安装后服务名类似:
systemctl list-unit-files | grep postgres
常见服务名:
postgresql.servicepostgresql-15.service(带版本号)sudo systemctl enable postgresql
# 或指定版本
sudo systemctl enable postgresql-15
sudo systemctl start postgresql
systemctl status postgresql
chkconfig postgresql on
service postgresql start
如果是源码编译安装,没有 systemd 服务文件,需要手动创建:
sudo vi /etc/systemd/system/postgresql.service
示例内容(按实际路径修改):
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
ExecStop=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable postgresql
sudo systemctl start postgresql
查看日志:
journalctl -u postgresql
或:
/var/lib/pgsql/15/data/log/
PostgreSQL 必须用 postgres 用户运行:
chown -R postgres:postgres /var/lib/pgsql
检查 postgresql.conf:
listen_addresses = '*'
如果你能告诉我:
我可以给你完全对应你环境的命令。