下载安装包:

https://www.postgresql.org/ftp/source/v12.0/

编译依赖安装:

yum -y install lrzsz sysstat e4fsprogs ntp readline-devel zlib zlib-devel openssl\
openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make
smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools systemtap-sdt-devel

编译

./configure --prefix=/usr/local/postgresql-12.0 --datadir=/usr/local/postgresql-12.0/datas\
--htmldir=/usr/local/postgresql-12.0/docs --with-perl --with-openssl --enable-dtrace\
--enable-debug

创建启动用户

groupadd postgres
useradd -g postgres postgres

创建数据库文件存储目录并授权此目录给数据库启动用户

mkdir -p /usr/local/postgresql-12.0/data
chown -R postgres:postgres /usr/local/postgresql-12.0

切换用户并初始化数据库

su postgres
 ./initdb -D /usr/local/postgresql-12.0/data

配置IP访问模式

vi /usr/local/postgresql/data/pg_hba.conf
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                trust
host    replication     all             127.0.0.1/32             trust
host    replication     all             ::1/128               trust
host    all         postgres            0.0.0.0/0             trust

配置监听地址、连接端口

vi /usr/local/postgresql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories
                                        # (change requires restart)

启动数据库

su  postgres
/usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l  logfile start

登录数据库

/usr/local/pgsql/bin/psql

更改数据库密码

postgres=# \password postgres

创建用户

create user sonar with password 'sonar'

创建数据库

create database sonar

数据库授权给指定用户

grant all on database sonar to sonar
进入数据库
\c + 数据库名称
postgres=# \c sonar
You are now connected to database "sonar" as user "postgres".