原文地址:https://my.oschina.net/u/4274636/blog/4325434

一、安装postgresql

1.下载安装包

我选择的是postgresql-9.6.19,这里需要下载的是它的二进制文件(提取码:sbab)。
也可以直接从官网上下载:
wgethttps://get.enterprisedb.com/postgresql/postgresql-9.6.19-1-linux-x64-binaries.tar.gz
下面开始进行操作,请注意操作的用户以及路径。

2.创建工作路径并解压压缩包

创建一个目录:mkdir -p /usr/local/postgre
然后切换到该目录并解压安装压缩包:tar -zxvf postgresql-9.6.19-1-linux-x64-binaries.tar.gz

3.创建postgresql的默认用户postgre并设置密码

提示:现在是在root用户下;
创建postgres用户:useradd postgres
设置密码:passwd postgres,然后会让你两次输入你的密码;

然后我们就可以切换到postgres用户来操作数据库,pgsql数据库会默认以postgres为默认用户。
切换用户:su postgres
切换到root用户:su root(会提示你输入root的登录密码)。

4.创建postgre的数据目录

这个数据目录与上面的工作路径是平级的,所以
创建postgre的数据目录:mkdir /usr/local/pgsqlgre/pgsql_data

5.配置postgresql环境变量

配置完postgresql环境变量以后我们就可以在任何路径使用postresql了。
所有的环境变量都需要在/etc/profile文件里面进行配置,所以我们进入这个文件里面:
vi /etc/profile;
然后按shift+g自动跳到文件末尾,在末尾处增加:

export PGDATA= ``/usr/local/postgre/pgsql/bin (注意路径,别无脑复制粘贴)。
提示:如果提示你当前用户没有权限的话,请切换到root用户操作。
刷新该文件即可生效:source /etc/profile

6.验证

到这里就完成本步骤了,可通过psql --version确认postgresql是否安装成功。

二、初始化postgresql

1.初始化数据库

这里的用户需要选切换postgres用户,su postgres
进入到postsql工程目录下,cd /usr/local/postgre/pgsql
(重要)执行初始化数据库的命令:bin/initdb -D ``/usr/local/pgsqlgre/pgsql_data
等待执行完毕,没什么问题就初始化成功了。

2.启动数据库

根据上面初始化完后的提示,启动数据库:
/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile start

这里-l指定日志文件位置,这里直接输出当前目录下的logfile中,这个可以自己指定,这里-D指定数据目录,默认如果不加数据目录直接报错找不到,可以在环境变量配置文件中加入一行:
export PGDATA=/opt/pgsql_data
然后source刷新即可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错。

如果提示当前用户权限不够的话,可以先切换至root用户后对pgsql这个文件做打开权限设置:
chmod -R 777 /``usr/local/postgre/pgsql

3.验证

到这里就完成本步骤了

(1).查看进程

执行查看进程的命令查看postgresql是否启动:ps -ef | grep postgres,就可以看到相关进程;

(2).查看网络监听情况

pgsql默认的端口号为5432,通过netstat命令或者lsof命令都可以看到监听情况:
lsof -i:5432 或者 netstat -an | grep 5432
现在可以看到pgsql默认监听的是localhost127.0.0.1

三、配置远程连接

目前只能本机访问,如果远程访问就连接不上了,具体的配置文件是:/usr/local/postgre/pgsql_data目录下的postgresql.conf,可以通过修改这个配置文件来调整各个参数,比如:listen_addresses可以修改绑定的地址,默认是localhostport可以修改监听的端口号,默认是5432max_connections可以修改最大客户端连接数量,默认是100等等。

首先可以通过命令:find / -name postgresql.conf找到该文件的路径信息(虽然上面我也提到了)。
进入postgresql.conf后修改为listen_address='*'

然后在同目录下对pg_hba.conf修改,在末尾处添加:hostlocal all all 0.0.0.0/0 md5

最后再重新启动数据库使之生效即可:
/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile stop
/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile start