RHEL7.2+PostgreSQL9.6.1


Requirements softwares

1.GNU make version 3.80 or newer is required

[root@rhel7 ~]# make --version

GNU Make 3.82

Built for x86_64-redhat-linux-gnu

2.You need an ISO/ANSI C compiler (at least C89-compliant). Recent versions of GCC are recommended

[root@rhel7 ~]# gcc --version

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)

3. tar is required to unpack the source distribution, in addition to either gzip or bzip2.

4.The GNU Readline library is used by default.

readline

readline-devel

libedit

Optional

perl 5.8 or later

python

Kerberos

OpenSSL

OpenLDAP

and/or PAM

Flex 2.5.31 or later

Bison 1.875 or later


useradd pguser

su - pguser

tar -zxvf postgresql-9.6.1.tar.gz


Install

  cd postgresql-9.6.1

  ./configure

    默认安装目录/usr/local/pgsql,可以使用--prefix=path进行修改,./configure --help

 make

    The last line displayed should be:
    All of PostgreSQL successfully made. Ready to install.

 su (使用root安装)

 make install

    PostgreSQL installation complete.

Set the environment variables for pguser

 mkdir /usr/local/pgsql/data #PostgreSQL数据存储目录

 chown pguser:pguser /usr/local/pgsql/data

 export LD_LIBRARY_PATH=/usr/local/pgsql/lib

 export PG_HOME=/usr/local/pgsql

 export PATH=$PG_HOME/bin/:$PATH

 export PGDATA=/usr/local/pgsql/data

Initilize the DBServer

  (使用pguser)

[pguser@rhel7 ~]$ initdb -D /usr/local/pgsql/data
The files belonging to this database system will be owned by user "pguser".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /usr/local/pgsql/data -l logfile start

Start the DBServer 

[pguser@rhel7 ~]$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
[1] 13799
[pguser@rhel7 ~]$ ps -ef |grep postgre
pguser   13799  4377  0 12:37 pts/0    00:00:00 postgres -D /usr/local/pgsql/data
pguser   13801 13799  0 12:37 ?        00:00:00 postgres: checkpointer process   
pguser   13802 13799  0 12:37 ?        00:00:00 postgres: writer process   
pguser   13803 13799  0 12:37 ?        00:00:00 postgres: wal writer process   
pguser   13804 13799  0 12:37 ?        00:00:00 postgres: autovacuum launcher process  
pguser   13805 13799  0 12:37 ?        00:00:00 postgres: stats collector process  
pguser   13807  4377  0 12:37 pts/0    00:00:00 grep --color=auto postgre

连接测试

[pguser@rhel7 ~]$ psql --list
                               List of databases
   Name    | Owner  | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+--------+----------+-------------+-------------+-------------------
 postgres  | pguser | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | pguser | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/pguser        +
           |        |          |             |             | pguser=CTc/pguser
 template1 | pguser | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/pguser        +
           |        |          |             |             | pguser=CTc/pguser
(3 rows)

[pguser@rhel7 ~]$ psql postgres
psql (9.6.1)
Type "help" for help.

postgres=# select version();
                                                 version                                                 
---------------------------------------------------------------------------------------------------------
 PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
(1 row)

postgres=# select current_date;
    date    
------------
 2016-12-01
(1 row)

postgres=# \q

官方文档:https://www.postgresql.org/docs/9.6/static/installation.html