Install PostgreSQL 9.3.4 on Fedora 20

PostgreSQL is an object-relational database management system (ORDBMS) available for many platforms including Linux, FreeBSD, Solaris, Microsoft Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software. PostgreSQL is developed by the PostgreSQL Global Development Group, consisting of a handful of community volunteers employed and supervised by companies such as Red Hat and EnterpriseDB.

The vast majority of Linux distributions have PostgreSQL available in supplied packages. Mac OS X starting with Lion has PostgreSQL server as its standard default database in the server edition and PostgreSQL client tools in the desktop edition.

New features in PostgreSQL 9.3:

PostgreSQL moving beyond the traditional relational-database feature set with new, ground-breaking functionality that is unique to PostgreSQL. Major enhancements include:

  •     Make simple views auto-updatable
  •     Add many features for the JSON data type, including operators and functions to extract elements from JSON values
  •     Implement SQL-standard LATERAL option for FROM-clause subqueries and function calls
  •     Allow foreign data wrappers to support writes (inserts/updates/deletes) on foreign tables
  •     Add a Postgres foreign data wrapper to allow access to other Postgres servers
  •     Add support for event triggers
  •     Add optional ability to checksum data pages and report corruption
  •     Prevent non-key-field row updates from blocking foreign key checks
  •     Greatly reduce System V shared memory requirements

Here is the tutorial about installing PostgreSQL 9.3.4 on Fedora 16.

Open Terminal.

Switch to root user.

[raj@geeksite~/]$ su -

Install PosgreSQL 9.3.4:

By default the PostgreSQL packages are available in repository; please issue the following command to install.

[root@geeksite~/]# yum install postgresql postgresql-server postgresql-libs postgresql-devel postgresql-contrib

Configuring PostgreSQL 9.3.4 server:

Initialize the PostgreSQL.

[root@geeksite~/]# postgresql-setup initdb

PostgreSQL normally listens on the localhosts only, if would you like to enable the PostgreSQL to listen on all ip addresses; edit the /var/lib/pgsql/data/postgresql.conf.

[root@geeksite~/]# vi /var/lib/pgsql/data/postgresql.conf

Go to Connections and Communications section, find the “listen_address” variable. Uncomment the “listen_addresses” and place “*” instead of “localhost”

Before editing:

#listen_addresses = "localhost"

After editing:

listen_addresses = "*"

Add your network to access database remotely; Edit /var/lib/pgsql/data/pg_hba.conf.

[root@geeksite~/]# vi /var/lib/pgsql/data/pg_hba.conf

Add the following line according to your network configuration with md5 password authentication (Enable remote access of database).

# IPv4 local connections:
host    all             all               md5
host    all             all            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Restart the PostgreSQL server.

[root@geeksite~/]# systemctl restart postgresql.service

Auto start at system startup.

[root@geeksite~/]# systemctl enable postgresql.service

Confirm the PostgreSQL listening.

[root@itzgeek ~]# netstat -antup | grep 5432
tcp        0      0  *               LISTEN      1006/postgres
tcp6       0      0 :::5432                 :::*                    LISTEN      1006/postgres

Creating Database:

Login as postgres user.

[root@geeksite~/]$ su -l postgres

create the database called “test”

-bash-4.2$ createdb test

Login into the database.

-bash-4.2$ psql test

Create a new user called “raj” to manage the databases.


Login with the superuser.

sam@geeksite~/$ psql -h localhost -d test -U raj

That’s all!.


Share This Post

  • Anonymous

    I use this: su -c “passwd postgres”

    then I try this: createdb test

    ask me for the postgres password but says: FATAL: authentication for «postgres» user fail


    • Raj

      Login as postgres and then create database