[Fedora] Getting up and running with postgres in 2 mins

I am very fascinated with Postgres, right since I hard about it, around 2002. Compared to MySQL 3.25, which was and perhaps still is, more popular, Postgres fared a lot better in terms of SQL-compliance, foreign-key support [which was lacking in MySQL 3.25] etc. Also, Postgres is an ORDBMS, just like Oracle. You can do lot of cool stuff with Postgres.

For this exercise, we will assume:

Postgres user name = mypguser

Postgres data directory = /usr/local/pgsql/data

If you are using Fedora, Postgres will be installed by default. To verify, do a find on initdb and psql. If you do not have it installed, install it with yum or grab a tar ball from here and follow the instructions. Its pretty straight forward.

After you have installed, run the following commands:

#adduser mypguser
#passwd mypguser
#mkdir /usr/local/pgsql/data
#chown mypguser /usr/local/pgsql/data
#su – mypguser
$initdb -D /usr/local/pgsql/data

Starting Postgres

Postmaster should always be started as the underprivileged user mypguser.

$postgres -D /usr/local/pgsql/data >logfile 2>&1 &
To create a database:

createdb somedatabase
To start the command line tool:

psql somedatabase

Autostart Postgres as a service

Fedora should already have this script in /etc/init.d/postgresql.

The problem is that this assumes that the postgres user name is postgres and the data is located in /var/lib/pgsql/data. You can edit the script suitably and then enable it as a service, so that postmaster starts everytime your system boots up. You can also use the script that I have modified, just declared the user and data as variables. You can find it here.

Installing PgAdmin

PgAdmin is a nice gui frontend for administratin Postgres. You have to first add its yum repository. Follow these steps [you must be super user].

1. download rpm and add yum repository:
2. yum install postgis
3. yum install pgadmin3

You can also use phpPgAdmin.

For this article, I was inspired by:


Leave a Reply

Your email address will not be published. Required fields are marked *