CentOS7安装PostgreSQL

本篇介绍如何在CentOS Linux 中安装PostgreSQL 资料库伺服器。

安装PostgreSQL 资料库

在CentOS 中若要安装PostgreSQL,可以从CentOS 官方套件库来安装(建议选项),若是有特殊需要,一定要安装较新的版本,则可由PostgreSQL 所提供的套件库来安装。

CentOS 官方套件库

在CentOS Linux的官方套件库中已经有收录PostgreSQL的套件,所以只要使用yum即可直接安装:

#安装PostgreSQL伺服器 
sudo yum install postgresql-server postgresql-contrib

安装好之后,第一次使用前要进行PostgreSQL 资料库初始化设定:

#初始化PostgreSQL资料库 
sudo postgresql-setup initdb

立即启动PostgreSQL 伺服器:

#启动PostgreSQL伺服器 
sudo systemctl start postgresql

设定让PostgreSQL 伺服器在开机时可以自动启动:

#设定开机自动启动PostgreSQL伺服器 
sudo systemctl enable postgresql

这样就完成安装PostgreSQL 资料库的伺服器了。

PostgreSQL 套件库

若需要比较新版的PostgreSQL,则可从PostgreSQL官方提供的套件库来安装。首先从PostgreSQL的网页中寻找对应的套件库,下载并安装。

# 下载PostgreSQL 套件库资讯
wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

#安装PostgreSQL套件库资讯与EPEL 
sudo yum install pgdg-redhat-repo-latest.noarch.rpm epel-release

接着即可安装指定版本的PostgreSQL 了:

# 安装11 版PostgreSQL
sudo yum install postgresql11-server postgresql11-contrib

# 安装10 版PostgreSQL
sudo yum install postgresql10-server postgresql10-contrib

# 安装9.6 版PostgreSQL
sudo yum install postgresql96-server postgresql96-contrib

# 安装9.5 版PostgreSQL
sudo yum install postgresql95-server postgresql95-contrib

#安装9.4版PostgreSQL 
sudo yum install postgresql94-server postgresql94-contrib

接着按照自己安装的版本,初始化PostgreSQL 资料库:

#初始化PostgreSQL资料库 
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

立即启动PostgreSQL 伺服器:

#启动PostgreSQL伺服器 
sudo systemctl start postgresql-11

设定让PostgreSQL 伺服器在开机时可以自动启动:

#设定开机自动启动PostgreSQL伺服器 
sudo systemctl enable postgresql-11
 
 
注意!!!!
  在启动自己选择安装的PostgreSQL 伺服器时可能会出现下面的错误:
  

原因:在安装自己选择的postgresql之前已经启动了一个官方套件的postgresql,需要将之前的服务停掉   

解决:

  1、lsof -i:5432     如果提示lsof找不到命令 -------> yum install lsof

  

 

   2、关掉占用5432端口的进程(PID即进程号)

  

   3、启动自己选择安装的postgresql版本

 

连线与防火墙

PostgreSQL 预设只会开放本机(localhost)的连线进入,若想要让外部的使用者亦可透过网路连线进来存取资料,就要修改其设定。

编辑/var/lib/pgsql/11/data/postgresql.conf设定档,依据自己的需求修改listen_addresses属性,指定要倾听(listen)的网路介面:

# listen_addresses = 'localhost' 
# listen_addresses = '192.168.56.4' 
listen_addresses = '*'

编辑/var/lib/pgsql/11/data/pg_hba.conf设定档,加入允许存取PostgreSQL资料库的网段:

#允许192.168.56.0/24的所有连线 
host all all 192.168.56.0/24 trust

更改PostgreSQL 的设定之后,要重新启动让设定生效:

#重新启动PostgreSQL服务 
sudo systemctl restart postgresql-11

接着要开启CentOS Linux 系统的防火墙:

#将postgresql服务新增至public区域中 
sudo firewall-cmd --zone=public  --add-service=postgresql

#永久将postgresql服务新增至public区域中 
sudo firewall-cmd --zone=public  --permanent  --add-service=postgresql

这样就可以让外部的使用者存取PostgreSQL 资料库了。

管理PostgreSQL 资料库

在安装PostgreSQL资料库时,预设会建立一个专门用于管理资料库用的postgresLinux系统使用者帐号与PostgreSQL使用者帐号,在管理PostgreSQL资料库时就要使用这个帐号来进行。

#切换成postgres使用者 
sudo -i  -u postgres

#进入PostgreSQL指令介面 
psql

在进入PostgreSQL指令介面之后,就可以进行各项PostgreSQL的管理,关于psql的操作方式,可参考官方的手册

若要以一般使用者的权限来使用PostgreSQL资料库,要先建立帐号以及对应的资料库,然后再以对应的帐号执行psql,即可进入PostgreSQL资料库:

#新增PostgreSQL使用者 
sudo -u postgres createuser gtwang

#新增PostgreSQL资料库 
sudo -u postgres createdb gtwang

#进入PostgreSQL资料库 
psql

关于更详细的PostgreSQL操作,可以参考另外一篇Ubuntu Linux 18.04安装与使用PostgreSQL资料库教学,或是官方的文件。

参考资料:LinodeJOVE PATER LAB

posted @ 2020-04-15 16:40  SoyWang  阅读(212)  评论(0编辑  收藏  举报