PgSQL安装部署(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
  • 安装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

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

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

2.源码安装

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

源码地址:

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

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

tar -zxvf postgresql-12.0.tar.gz

开发包:

#编译器
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

创建用户组

groupadd pregres
useradd -g postgres postgres

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

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

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

make
make install

最后文件权限配置

chown -R postgres:postgres /usr/pgsql12

创建实例
配置PgSQL环境后

#postgres用户下

initdb -D {选择的实例位置}

数据库的启动和关闭

pg_ctl start

pg_ctl stop

3.配置

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

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

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

#postgres用户下

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

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

 host   all    all   0/0     md5
#内容解析:
#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 ......
  • 日志(postgresql.conf内配置)

4.远程连接

1.关闭防火墙:

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

移除指定端口
firewall-cmd --remove-port=5432/tcp

2.修改pg_hha.conf的配置

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all    			all   			0/0     				md5

3.修改postgresql.conf

listen_addresses = '*' 

4.重启服务

pg_ctl restart
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值