本篇介绍如何在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
![](https://img2020.cnblogs.com/blog/1540950/202004/1540950-20200415165626187-475085721.png)
原因:在安装自己选择的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资料库时,预设会建立一个专门用于管理资料库用的postgres
Linux系统使用者帐号与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资料库教学,或是官方的文件。
参考资料:Linode、JOVE PATER LAB