下载:
cd /usr/local/src
wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.bz2

tar -jxvf postgresql-9.6.1.tar.bz2
cd postgresql-9.6.1
安装依赖:
yum install readline readline-devel
编译安装:
当前目录为/usr/local/src/postgresql-9.6.1,可参考当前目录下的INSTALL文件,官方给出的安装教程
./configure && make && make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data--前台运行
nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data </dev/null >>/usr/local/pgsql/data/server.log 2>&1 </dev/null &--后台运行
/usr/local/pgsql/bin/createdb test--创建测试数据库
/usr/local/pgsql/bin/psql test
pg_hba.conf配置
下面是常用的pg_hba.conf配置:
TYPE DATABASE USER ADDRESS METHOD
# \"大众local\"大众 is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
TYPE段,定义了多种连接psql的办法:
local:利用本地unix套接字
host:利用tcp/ip连接(包含SSL和非SSL),“host”结合“IPv4地址”利用IPv4办法,结合“IPv6地址”则利用IPv6办法
hostssl:只能利用SSL TCP/IP连接
hostnossl:不能利用SSL TCP/IP连接
DATABASE段,指定哪个数据库,多个用逗号隔开,个中“all”只有在没有其他符合条款标情形下才代表“所有”,如有符合的条款,则代表“除了该条款之外的所有”,由于“all”的优先级最低,例如:
local db1 user1 ident
local all all ident
这2条都是local办法连接,第1条指定了特定 的“db1”,以是第2条的“all”则代表“除了db1之外的所有”,同理USER段的“all”也是如此。
USER段,指定哪个数据库用户,多个用逗号隔开。
ADDRESS段,该项是“IPv4、IPv6”的地址,用来指定主机或网段,“local”办法不必填写。
METHOD段,指定如何处理客户真个认证,常用的认证办法有:ident,md5,password,trust,reject。
ident是linux下postgresql默认的local认证办法,凡是能精确上岸做事器的操作系统用户,就能利用本用户映射的数据库用户在无需密码的情形下上岸数据库,用户映射文件为pg_ident.conf,这个用户记录着操作系统用户与数据库用户的映射关系,如果一个操作系统用户在这个文件中没有映射的数据库用户,则默认映射与之同名的数据库用户,例如,有一个名为user1的操作系统用户,同时有一个与之同名的数据库用户,那么user1在上岸操作系统之后,可直接输入psql,以数据库用户user1的身份且无需密码的情形下上岸数据库。我们在利用psql -U username上岸数据库的时候,数据库中已经创建了该username用户,但还会涌现“username ident 认证失落败”的缺点,便是由于在pg_ident.conf文件中没有映射关系。
md5是常用的密码认证办法,如未利用ident,则建议利用md5,密码因此md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。
password因此明文密码传送给数据库,建议不要在生产环境中利用。
trust是只要知道数据库用户名就不须要密码或ident就能登录,建议不要在生产环境中利用。
reject是谢绝认证。
在利用pgAdmin或php上岸数据库的时候,无论是否是本地,都因此TCP/IP连接,符合host办法,如果是本地(即localhost),则ADDRESS为127.0.0.1/32
在pg_hba.conf文件修正后,可通过 pg_ctl -D PGDATA reload 来重新加载文件(PGDATA 为数据库目录)
另:PostgreSQL默认只监听本地端口,用netstat -tuln只会看到“tcp 127.0.0.1:5432 LISTEN”。修正postgresql.conf中的listen_address=,监听所有端口,这样远程才能通过TCP/IP登录数据库,用netstat -tuln会看到“tcp 0.0.0.0:5432 LISTEN”。