Steps to install PostgreSQL, phpPgAdmin with PHP and managing PostgreSQL over Ubuntu 11.10

PostgreSQL-Logo

Here, I'm attempting to explain how to install PostgreSQL & phpPgAdmin briefly and an attempt to perform database dump and restore; which should be a basic functionality but is not present in pgadmin.

Here, I'm presuming that you already have a Linux machine with Ubuntu(likely v11.10) and installing the latest version of PostgreSQL(v9.1.1).

Installation

Steps to install PostgreSQL:
sudo apt-get install postgresql
or
sudo apt-get install postgresql-9.1

Steps to install GUI Administration application:
sudo apt-get install pgadmin3

Steps to install PHP based Web Administration site (like phpMyAdmin for MySQL database):
sudo apt-get install phppgadmin

Configuration

Steps to configure PostgreSQL to access it via localhost:

Edit the file postgresql.conf as follows:
sudo vi /etc/postgresql/9.1/main/postgresql.conf
Un-comment the following line or by add it at the end of the file:
listen_addresses = 'localhost'
Save and close the file.

Edit the file pg_hba.conf as follows:
sudo vi /etc/postgresql/9.1/main/pg_hba.conf
Replace local all all ident sameuser with:
local   all         all                               md5

Changing root users password

In PostgreSQL, root user is postgres which by default, does not have any password.
Enter following line in terminal to set a password for the default root user postgres:
sudo -u postgres psql
ALtER USER postgres password ''
(or)
ALTER USER postgres with encrypted password ''
\q

Creating a new User & a new Database

sudo -u postgres createuser -d -R -P new_username
// Enter Password for the created new user.
// Set the user permissions as admin or normal user
sudo -u postgres createdb -O new_username new_database_name

This will create a new user, with username "new_username" and create a new database "new_database_name" and set "new_username" as it’s owner.

Configure phpPgAdmin

Assuming that we have already installed phpPgAdmin by:
sudo apt-get install phppgadmin
Then, configure Apache:
sudo vi /etc/apache2/apache2.conf
Add following line at the end of the file:
# Include Phppgadmin
Include /etc/phppgadmin/apache.conf

Restart apache2 and postgresql to reflect changes
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/postgresql restart
or
sudo service apache2 restart
sudo service postgresql restart

Access phpPgAdmin

via http://localhost/phppgadmin we can access phpPgAdmin in our browser. We can log-in by various users we created like(new_username).

Use GUI Administration application

Run following command in terminal:
pgadmin3
Access from Terminal
Run following command in terminal:
psql

Performing Dump or Restore of PostgreSQL database

Before performing the ff commands, you should log in as postgres first:
sudo su postgres
Creating Dumps:
//dump the roles
pg_dumpall -g -U postgres > roles.sql
Dump the schema
pg_dump -Fp -s -v -f schema.sql -U postgres 
Dump the data
pg_dump -Fc -v -f data.dump -U postgres 

How to restore?
psql -f roles.sql
psql -f schema.sql 
pg_restore -a -d  -Fc data.dump

Installing Extensions

sudo apt-get install postgresql-contrib postgresql-contrib-9.1
Downloading the postgresql-contrib packages will give the ability to use the following five commands:
psql  -c "CREATE EXTENSION tablefunc"
psql  -c "CREATE EXTENSION fuzzystrmatch"
psql  -c "CREATE EXTENSION pg_trgm"
psql  -c "CREATE EXTENSION cube"
psql  -c "CREATE EXTENSION dict_xsyn"

References
https://help.ubuntu.com/8.04/serverguide/C/postgresql.html
http://solyaris.wordpress.com/2008/08/09/setup-postgres-in-ubuntu/
https://help.ubuntu.com/community/phpPgAdmin
http://bdhacker.wordpress.com/2011/05/06/postgresql-phppgadmin-php5-ubuntu/
http://czetsuya-tech.blogspot.in/2012/06/how-to-setup-postgresql-in-ubuntu-1110.html
http://forums.pragprog.com/forums/202/topics/10089

Cheers :)

Comments

  1. I think Valentina Studio is better free tool for Ubuntu, linux, windows and Mac OX S http://www.valentina-db.com/en/valentina-studio-overview

    ReplyDelete
    Replies
    1. As suggested above, Valentina Studio is a better option as it has a rich User Friendly environment to manage databases (here postgresql). But, as its just a trail or demo version, it can't be used in all possible environment. Anyways, thank you very much for your suggestion.

      Delete
  2. Excellent guide thanks! One comment. When you are all done, you can only manage phppgadmin locally. To fix this:

    vi /etc/apache2/conf.d/phppgadmin

    #uncomment the "allow from all"

    If you do not want to "allow from all" enter a new line:

    allow from yourIP/mask

    ReplyDelete
    Replies
    1. Thanks for the compliment and comment Tontech.

      Delete
  3. Not so far I have found new cool tool to work with PostgreSQL on ubuntu — Valentina Studio. Its free edition can do things more than many commercial tools!!

    I very recommend check it. http://www.valentina-db.com/en/valentina-studio-overview

    ReplyDelete

Post a Comment