Friday, 18 May 2012


First install python-software-properties:

$sudo apt-get install python-software-properties

Add PPA repository and update apt:

$sudo add-apt-repository ppa:pitti/postgresql

Now install postgresql:

$sudo apt-get install postgresql-9.1 libpq-dev

Check the installation:

$locate postgresql 

$psql -V             # check psql version
psql (PostgreSQL) 9.1
$finger postgres     # check if user postgres is created 

Login: postgres          Name: PostgreSQL administrator
Directory: /var/lib/postgresql       Shell: /bin/bash
Never logged in.
No mail.
No Plan.

$ su postgres          # switch user to postgres
$ psql                 # launch psql as postgres and check the server version
psql (9.1)
postgres=# select version();

Setup Root User 'posrgres':

The installer has created a unix user postgres without a password. So first I give a (unix) password to this special user. The user postgress is a root user (database administrator) of PostgreSQL Server but without a (PostgreSQL) password. So I give it one here as well.
$ sudo passwd postgres # give the postgres user a (unix) password
$ su postgres           # switch to the user postgres
$ psql                   # launch psql to give postgres PostgreSQL passord
postgres=# alter user postgres with password 'secret';  # new password for postgres 
postgres=# \q            # quit psql
$ exit                   # exit from user 'postgres'

Configure PostgreSQL Server:

$ su postgres    # switch to the user postgres
$ cd /etc/postgresql/9.1/main
$ ls -la 
postgres@ubuntu-pc:/etc/postgresql/9.1/main$ cp pg_hba.conf pg_hba.conf.bak.original 
postgres@ubuntu-pc:/etc/postgresql/9.1/main$ cp postgresql.conf postgresql.conf.bak.original 

postgres@ubuntu-pc:/etc/postgresql/9.1/main$ ls -la

Make changes to pg_hba.config (authetification methods).

host    all         all       trust          # md5 -> trust

Make changes to postgresql.conf for error log.

log_destination = 'stderr'  # 2011.07.04 - enabled
logging_collector = on   # 2011.07.04 - enabled and turned on
log_directory = 'pg_log'  # 2011.07.04 - enabled. I will create this folder (see below).
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # 2011.07.04 - enabled
log_truncate_on_rotation = off  # 2011.07.04 - enabled and keep it off
log_rotation_age = 1d   # 2011.07.04 - enabled
log_rotation_size = 10MB  # 2011.07.04 - enabled

Create a log directory as specified in the config above:

$ su postgres         # switch to postgres user
$ cd ~/9.1/main/      # /var/postgresql/9.0/main
$ mkdir pg_log        # create a new log directory as specified in the config file above
$ ls -F               # confirm the new directory 'pg_log'
PG_VERSION  pg_log/ ...
$ exit


Restart the server:

$ sudo /etc/init.d/postgresql restart
 * Restarting PostgreSQL 9.1 database server  
$ sudo /etc/init.d/postgresql status
Running clusters: 9.1/main 

Check the new log:

$ sudo ls /var/lib/postgresql/9.1/main/pg_log

 Finally Install pgAdmin III (GUI tool for PostgreSQL) :

$ sudo apt-get install pgadmin3   # install the latest pgAdminIII
$ pgadmin3                        # launch it  

No comments:

Post a Comment