1.环境说明
CentOS7.2
postgresql10.4
2.下载
postgresql的官方地址
https://www.postgresql.org/ftp/source/
在下载列表中根据需求选择版本10.4,以下图:

进入子目录后,能够看到文件列表:

选择postgresql-10.4.tar.gz,下载完成后上传至RedHat服务器的指定目录便可。
3.配置编译安装
tar -zxvf postgresql-10.4.tar.gz
cd postgresql-10.4
./configure --prefix=/usr/local/postgresql
编译postgres,发现提示缺乏readline库,以下图:

yum search readline
发现一个readline-devel包
yum install readline-devel
从新配置
./configure --prefix=/usr/local/postgresq
没报错 编译安装
make && make install
4.配置用户权限与环境变量
useradd postgres
chown -R postgres:postgres /usr/local/postgresql/
su - postgres
vi ~/.bash_profile
PGHOME=/usr/local/postgresql
export PGHOME
PGDATA=/usr/local/postgresql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
修改完成后能够经过source ./.bash_profile使其当即生效
source ~/.bash_profile

5.初始化数据库
###在使用initdb进行初始化的同时咱们能够指定参数来同时进行一些初始化工做,例如指定pgdata(postgresql数据目录)、
指定encoding(编码)、指定数据库超级用户的用户名和密码等等,在最后面我标记出的这段话指出了若是data目录没有指定,
则会默认使用环境变量中的PGDATA,因为以前咱们刚刚设置了PGDATA环境变量,因此此处咱们也就无需再额外指定,最后执行
初始化命令便可:
initdb

初始化完成后,在postgresql的目录能够看到生成的数据目录data以及该目录的相关数据和配置文件:

#base目录是表空间目录
#global目录是相关全局变量的目录
#pg_hba.conf:访问控制配置(127.0.0.1改成信任的客户端ip网段使其能够远程访问)
#postgresql.conf:postgresql主配置文件(listen_address=localhost改成星号使其监听整个网络)
6.修改配置文件
将pg_hba.conf的ip地址修改成0.0.0.0/0,而加密方式改成md5,表示须要密码访问:

修改 postgresql.conf 中的listen_address使其监听整个网络:

7.关闭防火墙
8.启动链接数据库
pg_ctl start -l /usr/local/postgresql/log/pg_server.log
psql
ps -ef|grep postgres

