Fedora 17配置PostgreSQL自动启动

使用Fedora包管理工具安装完Postgresql后,不管怎么折腾都无法随机器自动启动。今天花了点功夫仔细阅读了一些相关文件,终于找到了解决的办法。其实也很简单。

根本原因是,我在安装完Postgresql后将数据库放到了/var/pgsql/data,而Postgresql默认的存放位置是/var/lib/pgsql/data。因而使用默认的安装配置无法找到数据库,所以启动失败。

在解决的过程中,最开始想通过自定义一个开机脚本来解决,可以网上的方案都有问题。根本原因是在Fedora15以后,使用Systemd替代了原来的init,因而网上的通过编写或修改rc脚本的方案不再可行。

在Systemd中,启动服务配置在/etc/systemd/system和/lib/systemd/system中。在/lib/systemd/system/postgresql.service 文件即是postgresql安装的默认服务配置文件。按照推荐的做法(http://docs.fedoraproject.org/zh-CN/Fedora/16/html/Release_Notes/sect-Release_Notes-Changes_for_Sysadmin.html) 不应该直接修改此文件,而是应该复制到/etc/systemd/system,然后修改之。

现在位置,改起来非常见到了:

sudo cp /lib/systemd/system/postgresql.service /etc/systemd/system

sudo servicectl enable postgresql.service #激活postgresql服务

用编辑器打开 /etc/systemd/system/postgresql.service,修改器PGDATA的设置为正确的路径(我的是/var/pgsql/data)

sudo systemctl --system daemon-reload

大功告成.

相关推荐