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.

Article will continue after the ad

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