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.
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”
#listen_addresses = "localhost"
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 127.0.0.1/32 md5 host all all 18.104.22.168/24 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 0.0.0.0:5432 0.0.0.0:* LISTEN 1006/postgres tcp6 0 0 :::5432 :::* LISTEN 1006/postgres
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.
test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'raj';
Login with the superuser.
sam@geeksite~/$ psql -h localhost -d test -U raj