Installing the PostgreSQL server on RHEL, CentOS, Scientific Linux or Fedora installs the PostgreSQL databases and configuration files in “/var/lib/pgsql/data”.
This may or may not be desirable. Let’s assume for a moment you have a separately crafted partition for PostgreSQL to use, let’s say a RAID10 volume. You’d want to change this.
Change the defaults
Use your favorite text editor, in my case nano to create the following file (must be the same as the name of the service)
# nano /etc/sysconfig/pgsql/postgresql
Add the following
PGDATA=/postgresql/data
Optionally you can also add the following to change the default port (example is the default port)
PGPORT=5432
Adjusting SELinux to permit the new data folder (pgdata) location
Should the following command output “Permissive” or “Disabled” then you may skip the details for SELinux.
# getenforce
Run the semanage command to add a context mapping for /opt/postgresql and any other directories/files within it.
# semanage fcontext -a -t postgresql_db_t "/postgresql/data(/.*)?"
Now use the restorecon command to apply this context mapping to the running system
# restorecon -Rv /postgresql/data
Starting PostgreSQL
# chkconfig --levels 345 postgresql on
# service postgresql initdb
# service postgresql start
You’re all set to go! Keep in mind that PostgreSQL listens to ‘localhost’ by default. To change this you need to alter the “listen_address” parameter in “/var/lib/pgsql/data/postgresql.conf” (change will require restart).
Recent Comments