Installing postgres on Fedora

Posted by {"name"=>"Palash Ray", "email"=>"paawak@gmail.com", "url"=>"https://www.linkedin.com/in/palash-ray/"} on January 06, 2010 · 2 mins read

In Fedora 7+, postgres is insatlled by default. Its just about a few commands to get started. First of all you have to change the password for the postgres user, postgres. I am pasting the commands below:
#passwd postgres
#chown postgres /var/lib/pgsql/data/
#su - postgres
~initdb -D /var/lib/pgsql/data/
#/etc/rc.d/init.d/postgresql start
You can also install pgadmin3, which is a nice GUI for postgres:
#yum install pgadmin3
If you do not have the repository, you can add it from here:
http://yum.pgsqlrpms.org/reporpms/repoview/letter_p.group.html
I was inspired by this blog:
http://www.postgresonline.com/journal/index.php?/archives/45-An-Almost-Idiots-Guide-to-PostgreSQL-YUM.html

Update As On 18th July 2014

After a long break, I am again back, trying to install Postgres. It has become lot easier. Just installed it using the rpm available on the site. It was smart enough to create the user postgres for me.
A few essential post install tweaks are necessary.
Note: The below steps have to be done while logging in as the unix user postgres.

Changing the authentication method from peer and ident to md5

By default, postgres has the unix user postgres as the only user. Now, you would like to change that. Edit the pg_hba.conf. Typically in Fedora it would be under the /var/lib/pgsql/data. Change it so that the below section looks like:

# "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

Then through psql, change the user role of the postgres user:

alter user postgres with password 'mypassword';

Now restart the service for these changes to take effect.

Making the database accept TCP/IP connection

Edit the postgresql.conf and un-comment the below line:

listen_addresses = 'localhost'

After completing the above 2 steps, you should be all set!