Database installation using superuser account

Securing and Optimizing Linux: RedHat Edition -A Hands on Guide
Prev | Chapter 27. Linux PostgreSQL Database Server | Next

# 27.3. Database installation using superuser account

Once PostgreSQL is installed on your Linux server, it's important to create the database installation before starting your PostgreSQL server. To create the database installation, use the following command:

                     [root@deep] /# su postgres
                     [postgres@deep /]$ initdb --pglib=/usr/lib/pgsql --pgdata=/var/lib/pgsql

We are initializing the database system with username postgres `uid=40`. This user will own all the files and must also own the server process.

                     Creating Postgres database system directory /var/lib/pgsql/base

                     Creating template database in /var/lib/pgsql/base/template1

                     Creating global classes in /var/lib/pgsql/base

                     Adding template1 database to pg_database...

                     Vacuuming template1
                     Creating public pg_user view
                     Creating view pg_rules
                     Creating view pg_views
                     Creating view pg_tables
                     Creating view pg_indexes
                     Loading pg_description

                     [postgres@deep /]$ chmod 640 /var/lib/pgsql/pg_pwd
                     [postgres@deep /]$ exit

                     exit

                     [root@deep] /#

The `--pglib` command will specify where the library directory of PostgreSQL resides in the system, and the `--pgdata` command will specify where the database files must reside for this installation on Linux.

> : Do not create the database installation as `root!` This would be a major security hole.

Please don't foreget to Cleanup later:

                     [root@deep] /# cd /var/tmp
                     [root@deep ]/tmp# rm -rf postgresql-version/ postgresql-version.tar.gz

Remove the egcs-c++-version.i386.rpm package to save space.

                     [root@deep] /# rpm -e egcs-c++

- The rm command will remove all the source files we have used to compile and install PostgreSQL. It will also remove the PostgreSQL compressed archive from the `/var/tmp` directory.

- The rpm `-e` command will remove the egcs-c++ package we installed to compile the PosgreSQL Server. Note that the egcs-c++ package is required only for compiling programs like PostgreSQL and can be uninstalled safely after successful compilation of PostgreSQL.

Prev | Home | Next
Compile and Optimize | Up | Configuration files