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
大功告成.