Install PostgreSQL on Ubuntu 8.04


Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 1827

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 1827

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 2180

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3025

Warning: implode() [function.implode]: Argument must be an array in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3077

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3108

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3108

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3151

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3151

Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3292

Warning: Invalid argument supplied for foreach() in /home/796/domains/hocuspokus.net/html/wp-content/plugins/wp-syntax/geshi/geshi.php on line 3292

Following up from my old guide to installing PostgreSQL (for Ubuntu 7.10), I thought i’d better do an update for the latest releases… :)

This quick walk-through are my notes for installing the PostgreSQL database server and the PgAdmin administration application on Ubuntu Linux, and also set up the server so it allows access to other PC’s on your network.

Before we move on, this guide was tested on the current release of Ubuntu Linux, (8.04 - Hardy Heron) and PostgreSQL 8.3, but it should also be applicable to older versions (of Ubuntu and PostgreSQL) and other Debian based distros.

Right for the basic installation, at the command-line, enter the following commands (or search for the listed packages in synaptic if you prefer that way of working):

$ sudo apt-get install postgresql postgresql-client postgresql-contrib
$ sudo apt-get install pgadmin3

This installs the database server/client, some extra utility scripts and the pgAdmin GUI application for working with the database.

Now we need to reset the password for the ‘postgres’ admin account for the server, so we can use this for all of the system administration tasks. Type the following at the command-line (substitute in the password you want to use for your administrator account):

$ sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'password';
template1=# \q

That alters the password for within the database, now we need to do the same for the unix user ‘postgres’:

$ sudo passwd -d postgres
$ sudo su postgres -c passwd

Now enter the same password that you used previously.

Then, from here on in we can use both pgAdmin and command-line access (as the postgres user) to run the database server. But before you jump into pgAdmin we should set-up the PostgreSQL admin pack that enables better logging and monitoring within pgAdmin. Run the following at the command-line:

$ sudo su postgres -c psql < /usr/share/postgresql/8.3/contrib/adminpack.sql

Finally, we need to open up the server so that we can access and use it remotely - unless you only want to access the database on the local machine. To do this, first, we need to edit the postgresql.conf file:

$ sudo gedit /etc/postgresql/8.3/main/postgresql.conf

Now, to edit a couple of lines in the ‘Connections and Authentication’ section…

Change the line:

#listen_addresses = 'localhost'

to

listen_addresses = '*'

and also change the line:

#password_encryption = on

to

password_encryption = on

Then save the file and close gedit.

Now for the final step, we must define who can access the server. This is all done using the pg_hba.conf file.1

$ sudo gedit /etc/postgresql/8.3/main/pg_hba.conf

Comment out, or delete the current contents of the file, then add this text to the bottom of the file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database
# super user can access the database using some other method.
# Noninteractive
# access to all databases is required during automatic maintenance
# (autovacuum, daily cronjob, replication, and similar tasks).
#
# Database administrative login by UNIX sockets
local   all         postgres                          ident sameuser
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
 
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
 
# Connections for all PCs on the subnet
#
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host    all         all         [ip address]          [subnet mask]  md5

and in the last line, add in your subnet mask (i.e. 255.255.255.0) and the IP address of the machine that you would like to access your server (i.e. 138.250.192.115). However, if you would like to enable access to a range of IP addresses, just substitute the last number for a zero and all machines within that range will be allowed access (i.e. 138.250.192.0 would allow all machines with an IP address 138.250.192.x to use the database server).

That’s it, now all you have to do is restart the server:

$ sudo /etc/init.d/postgresql-8.3 restart

And all should be working.


  1. The following advice can also be given to you (plus you don’t even need to figure out IP addresses and subnet masks) from the latest versions of pgAdmin (1.6.x). But it doesn’t hurt to know how things work. 

17 Responses to “Install PostgreSQL on Ubuntu 8.04”


  1. 1 stg

    very useful, worked like a charm, ty

  2. 2 amr

    thank you

  3. 3 Mario R Eraso

    Thanks a lot, very helpful and quick.

  4. 4 Hernan

    that’s a great job! Everything worked fine!

  5. 5 Dylan

    Hi, thanks for the guide here. It’s worked perfectly for me (much to my newbie-suprise).

    I’m now wanting to install phppgadmin. I’ve referred to your previous guide for this, but it’s using an older version of Ubuntu.

    Will the guide still work fine for Hardy?

  6. 6 Daz

    I’m now wanting to install phppgadmin. I’ve referred to your previous guide for this, but it’s using an older version of Ubuntu.

    Will the guide still work fine for Hardy?

    Hi, glad everything worked well for you. As for phppgadmin, yep the install for Hardy is exactly the same as the previous guide and shouldn’t give you any problems.

  7. 7 Daniel

    Fantastic and quick. Thanks!

  8. 8 Anton

    Thanks, short and sweet.

  9. 9 Ivotron

    Hi,

    Strange thing happens, I can login using pgAdmin but not through psql. Any advice? I love the command-line

  10. 10 Adult Ühler

    Thanks for the guide. Worked perfectly for me too.

  11. 11 anjar

    Hi,

    Strange thing happens, I can login using pgAdmin but not through psql. Any advice? I love the command-line

    edit this line in /etc/postgresql/8.3/main/pg_hba.conf

    # Database administrative login by UNIX sockets
    local all postgres ident sameuser

    change ident sameuser to md5

    restart your postgresql

    then try login to postgreql with psql -U ‘your username’ -W
    then input your password

    that method works for me

  12. 12 mkyong

    Hi thanks for the guide of install PostgreSQL in Ubuntu. This is quite big different with Install PostgreSQL in Fedora. Please visit my website if you want to see how the different between install PostgreSQL in fedora and ubuntu

  13. 13 susheel

    For some one who is new to ubuntu and postgresql you made my life easy. Thanks is just a small tribute. world need more people like you.

  14. 14 Willie Kuo

    Thank you a log. It’s very useful.

  15. 15 Willie Kuo

    Thank you a log. It’s very useful.

    I’m sorry for the typo “log” (correct word: lot).

  16. 16 bedjo

    thx a lot. its very useful. I have tried it in ubuntu 7.10 and installed successfully. I use posgresql v8.2. keep the good work!

  17. 17 nanung

    top top top

Leave a Reply

Quote selected text