当前位置:   article > 正文

PgSQL安装部署(centos 7)_postgresql centos 7 安装

postgresql centos 7 安装

PgSQL安装部署(centos 7)初版

– 参考《PostgreSQL 修炼之道:从 小工到专家(第 2 版)》

1.快速安装

这样安装的文件会放在默认位置,这样的好处是不容易出错,报错的几率会小很多

rpm包:https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • 1
  • 安装yum源
# 第一步 yum源 :

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

#通过 yum search postgresql 可以查看到与PGsql数据库相关的软件

# 第二步 根据源安装数据库程序:
yum install -y postgresql12-server

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 创建数据库实例,(创建的实例数据如果没有设置路径 默认在/var/lib/pgsql/12/data)
#由于第一次使用时 没有配置文件路径:

/usr/pgsql-12/bin/postgresql-12-setup initdb
  • 1
  • 2
  • 3
  • 开机自启配置
systemctl enable postgresql-12
  • 1
  • 启动数据库:
systemctl start postgresql-12
  • 1
  • 安装contrib包(可以有其他选择)
yum install postgresql12-contrib
  • 1

2.源码安装

好处是自己去设计安装方案,但一旦中间莫个过程出错,会引起连锁反应。

源码地址:

https://www.postgresql.org/download/
  • 1

这里使用了postgresql-12.0.tar.gz

tar -zxvf postgresql-12.0.tar.gz
  • 1

开发包

#编译器
yum -y install gcc
#默认需要
yum -y install -y zlib-devel
yum -y install -y readline-devel

#配置中加入了 --with-python
yum -y install -y python-devel

#配置时我加入了 --with-per
yum install perl-ExtUtils-Embed
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

创建用户组

groupadd pregres
useradd -g postgres postgres
  • 1
  • 2

编译安装三把斧,configure,make,make install

#pgsql的目录下 
./configure [--prefix={pgsql文件路径,自主定义}] [--with-perl] [--with-python]
  • 1
  • 2

–with-perl:使用PL/perl过程语言编写自定义函数
–with-python:使用PL/python编写自定义函数

make
  • 1
make install
  • 1

最后文件权限配置

chown -R postgres:postgres /usr/pgsql12
  • 1

创建实例
配置PgSQL环境后

#postgres用户下

initdb -D {选择的实例位置}
  • 1
  • 2
  • 3

数据库的启动和关闭

pg_ctl start

pg_ctl stop
  • 1
  • 2
  • 3

3.配置

  • 配置路径
#设置PGsql的文件路径:
export PGHOME=/usr/pgsql-12
export PATH=$PGHOME/bin:$PATH

#设置共享库路径(PG使用某些功能需要预加载相关的共享库)
export LD_LIBRARY_PATH=/usr/pgsql-12/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 创建实例

创建指定位置的实例:
在此之前最好创建实例路径
(原因是initdb创建实例需要在postgres用户下才能创建,而postgres在根目录下是没有创建权限的,当然你也可以直接选择在postgres 下创建)

#postgres用户下

initdb -D {选择的实例位置}
  • 1
  • 2
  • 3
  • pg_hha.conf的配置

    默认的数据库没有配置远程连接,需要在pg_hha.conf文件里配置:

 host   all    all   0/0     md5
  • 1
#内容解析:
#TYPE(主机类型)、DATABASE(数据库名)、USER(用户名)、ADDRESS(IP地址和掩码)、METHOD(加密方法)
1.type
host:使用TCP/IP 连接
local:使用Unix-domainsocket
hostssl: 指定SSL
hostnossL:禁止SSL
2.database
"all",以及数据库名。对于多个数据库名用逗号隔开
3.use
和database相同
4.address
指定匹配地址
5.METHOD
加密方式:trust,reject,md5,password ......
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 日志(postgresql.conf内配置)

4.远程连接

1.关闭防火墙:

systemctl start firewalld ##关闭防火墙
systemctl status firewalld ##查看状态
  • 1
  • 2
#如果不想关闭防火墙可以对外开放5432端口
firewall-cmd --add-port=5432/tcp

移除指定端口
firewall-cmd --remove-port=5432/tcp
  • 1
  • 2
  • 3
  • 4
  • 5

2.修改pg_hha.conf的配置

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all    			all   			0/0     				md5
  • 1
  • 2

3.修改postgresql.conf

listen_addresses = '*' 
  • 1

4.重启服务

pg_ctl restart
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/410497
推荐阅读
相关标签
  

闽ICP备14008679号