https://www.cnblogs.com/siyun/p/11907754.html
https://blog.csdn.net/ckc_666/article/details/84974264
重点参考第一个,目前我没有时间整理先记下来,以后整理好后,发博客里

linux 安装PostgreSQL12

一、安装步骤

1、设置保存安装包的目录

cd /usr/local/src

2、开始下载源包

wget https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gzhttps://www.postgresql.org/ftp/source/ 这里是官网资源)

3、解压

tar zxvf postgresql-12.1.tar.gz

4、移动位置/usr/local/pgsql/postgresql-12.1

mv postgresql-12.1 /usr/local/pgsql/postgresql-12.1

6、进入移动后的目录

cd /usr/local/pgsql/postgresql-12.1

8、配置选项生成Makefile,默认安装到目录/usr/local/pgsql/postgresql-12.1

./configure (如果要安装到自定义目录,这里修改为 # ./configure —prefix= /usr/local/pgsql 红字部分是你的自定义路径)

9、echo 一下返回是否为0, 0表示无错误

echo $?
130

10、发现没有相关包依次安装

yum install -y bison
# yum install -y flex
# yum install -y readline-devel (https://www.linuxidc.com/Linux/2012-02/53982.htm 这里有解释为什么安装这个)
# yum install -y zlib-devel

11、编译

make (编译后再echo $? 如果为0 就可以安装了)

12、安装

make install

13、创建,添加postgres 用户到 postgres组

groupadd postgres (创建组:postgres )
# useradd -g postgres postgres (命令解释:useradd -g 用户组 用户 )
# mkdir -p /usr/local/pgsql/data (创建一个data 目录)
# chown postgres /usr/local/pgsql/data ( 改变data的权限为postgres用户)
# su - postgres ( 切换操作用户为 postgres)

14、初始化数据库

$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
(提示:初始化数据库的操作为: ./initdb -D /usr/local/pgsql/data initdb把用户指定的选项转换成对应的参数,通过外部程序调用的方式执行postgres程序。
postgres程序在这种方式下将进入bootstrap模式创建数据集簇,并读取后端接口postgres.bki文件来创建模板数据库。)

15、启动数据库

$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start(启动数据库)
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop (停止数据库)
/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/ -m fast (重启数据库)

二、postgreSQL配置

1、修改postgresql.conf,修改主要的配置参数。

修改前可以先备份一下
$ cp postgresql.conf postgresql.conf_bak
$ vim /usr/local/pgsql/data/postgresql.conf
修改listen_addresses = ‘‘ 前面的#号需要去掉(按/键输入listen_addresses可以快速查找该行。)默认参数是‘localhost‘ 只监听本机IP修改为’‘后,
可以让远端的其它设备访问 。另外没有vim 可以使用# yum install -y vim 安装vim文本编辑工具。

2、修改postgresql.conf,修改数据库的访问权限。

$ vim /usr/local/pgsql/data/pg_hba.conf
添加以下,表示主机所有IP都可以访问。
host all all 0.0.0.0/0 trust
安装PostgreSQL在centos 7 - 图10

3、添加环境变量

$ su (输入密码后切换为root管理员)
# cd /home/postgres (之前我们创建了一个postgres的用户所以这里有这个目录)
# vim .bash_profile
添加
export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin
# source .bash_profile (使修改生效)

4、设置开机自启动

cd /usr/local/pgsql/postgresql-12.1/contrib/start-scripts (这里有个文件名叫linux的文件,它是linux系统的启动脚本)
安装PostgreSQL在centos 7 - 图11
由于这个文件权限没有设置为X可以执行权限,我们需要设置它为可运行。
# chmod a+x linux
安装PostgreSQL在centos 7 - 图12
# cp linux /etc/init.d/postgresql (复制linux文件到/etc/init.d目录下,并更名postgresql)
# vim linux /etc/init.d/postgresql
查看
安装PostgreSQL在centos 7 - 图13
prefix=/usr/local/pgsql (安装程序的文件路径)
PGDATA=”/usr/local/pgsql/data” (数据存放目录)
如果和自己的路径一致就不需要修改了,按ESC键 ,然后:q退出编辑。
# chkconfig —add postgresql (添加开机启动项目)
# chkconfig (看下是否设置成功)
安装PostgreSQL在centos 7 - 图14

4、设置系统配置,开放默认的5432端口

如果CentOS6 使用iptables执行以下步骤。
# vim /etc/sysconfig/iptables
添加
-A INPUT -p tcp -m tcp —dport 5432 -j ACCEPT
# cd /etc/init.d/iptables restart (重启服务)

如果CentOS7 有使用firewall防火墙执行以下步骤。
# firewall-cmd —zone=public —list-ports
# firewall-cmd —zone=public —add-port=5432/tcp —permanent (添加5432端口)
# firewall-cmd —reload (重启防火墙)

5、启动服务

service postgresql start
安装PostgreSQL在centos 7 - 图15

6、查看PostgreSQL服务

ps -ef | grep postgres
安装PostgreSQL在centos 7 - 图16

7、设置默认密码

PostgreSQL安装后会自动创建一个用户,名为postgres
# su - postgres (默认密码为空,切换到postgres用户)
# psql -U postgres
postgres=# ALTER USER postgres with encrypted password ‘asd111’; (asd111密码自由设置)
postgres=# \q (可退出)

三、使用阿里云的5432端口打开

1、选择-安全组-配置规则

安装PostgreSQL在centos 7 - 图17



安装PostgreSQL在centos 7 - 图18

确定后就开放了5432端口了。

2、使用pgAdmin连接数据库

配置IP,5432端口,用户,密码:asd111 就可以连接了。
安装PostgreSQL在centos 7 - 图19



参考链接:
https://blog.csdn.net/min0324/article/details/85019434
https://blog.csdn.net/joy_chou12/article/details/89351634
https://www.cnblogs.com/Paul-watermelon/p/10654303.html

个人=遇到的问题,重启数据库,这个可能你需要,很多问题重启下就好
/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/ -m fast
这句代码 /usr/local/pgsq 是你安装pg的路径,其他的你pg安装路径下面一定是有的
data是你自己设定存放数据的路径