Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

目录

安装前准备

编译安装

创建用户

配置环境变量

数据库初始化与启动

初始化数据库

启动数据库

连接数据库

配置文件

postgresql.conf

pg_hba.conf


安装前准备

官网下载PG11.2源码,地址:https://www.postgresql.org/ftp/source/v11.2/

源码有两种压缩方式,我们选择postgresql-11.2.tar.gz

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

编译安装

首先进入安装包所在目录,执行tar zxvf postgresql-11.2.tar.gz解压安装包,执行./configure --help可以看到编译相关的信息。

执行./configure命令开始编译,在编译的过程中会发现缺少包,执行如下命令安装缺少的包:

yum install gcc   yum install readline-devel    yum install zlib-devel

安装好上面提示缺少的三个包后,再次执行./configure命令进行编译,会发现创建config.status配置文件,如下图:

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

编译完成,接下来可以进行安装了

执行命令 make,出现如下图就证明编译成功,可以进行安装了:

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

执行命令 make install,出现如下图就证明安装成功了。

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

创建用户

编译安装成功后,接下来要做的就是创建一个普通用户,因为默认超级用户(root)不能启动postgresql,所以需要创建一个普通用户来启动数据库,执行以下命令创建用户:

useradd postgres

接下来设置权限,将pg的数据目录全部赋给postgres用户,执行以下命令:

chown -R postgres:postgres /usr/local/postgresql/

配置环境变量

切换到postgres用户,执行如下命令:

su - postgres

打开.bash_profile文件,命令如下,添加如下内容:

 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
export PATH

如下如:

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

执行如下命令使其生效:

source ~/.bash_profile

数据库初始化与启动

初始化数据库

执行initdb命令

启动数据库

pg_ctl start -l /usr/local/postgresql/log/pg_server.log,

后面的log日志需手动创建,如下图,证明数据库启动成功:

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

连接数据库

连接数据库可以使用如下命令

psql -U postgres -d postgres

配置文件

目录/usr/local/postgresql/data/下,pg_hba.conf和postgresql.conf两个文件。

postgresql.conf

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

如上图,将listen_addresses的值设置成*,使其监听整个网络,端口号默认是5432,也可以自己设置。

pg_hba.conf

客户端认证配置文件

Centos7安装PostgreSQL11.2(源码编译)及配置文件介绍

如上图

TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接

DATABASE:指定数据库

USER:指定数据库用户

ADDRESS:ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一                         位是0~255之间的任何一个

METHOD:认证方式,常用的有ident,md5,password,trust,reject。

                   md5是常用的密码认证方式。

                   password是以明文密码传送给数据库,建议不要在生产环境中使用。

                   trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。

                   reject是拒绝认证。