阿里云 Centos7 安装PostgreSQL教程

  • 1.选择版本
  • 2. 选择平台
  • 3. 选择架构
  • 4. 安装repository RPM
  • 5. 安装客户端包
  • 6. 可选的服务端安装包
  • 7. 可选的初始化数据库时候自动启动
  • 8. 首次登录
  • 9. 修改默认登录密码
  • 10.设置远程登录支持
  • 10.1 查找配置文件路径
  • 10.2 进入配置文件夹路径
  • 10.3.1 编辑修改postgresql.conf
  • 10.3.1.1 打开postgresql.conf配置文件
  • 10.3.1.2 进入编辑模式
  • 10.3.1.3 修改配置文件
  • 10.3.1.4 保存并退出
  • 10.3.2 编辑修改pg_hba.conf
  • 10.3.2.1 打开pg_hba.conf 配置文件
  • 10.3.2.2 进入编辑模式
  • 10.3.2.3 修改配置文件
  • 10.3.2.4 保存并退出
  • 10.4 重启服务
  • 11. 阿里云控制台后台开放5432端口
  • 12 设置防火墙策略
  • 13. 远程客户端连接
  • 卸载篇
  • 参考资料


这篇博文讲解下如何在阿里云Centos7 上安装PostgreSQL

1.选择版本

12

2. 选择平台

RedHat Enterprise, CentOS, Scientific or Oracle version 7

3. 选择架构

x86_64

4. 安装repository RPM

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

5. 安装客户端包

yum install postgresql12

6. 可选的服务端安装包

yum install postgresql12-server

7. 可选的初始化数据库时候自动启动

/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

8. 首次登录

默认账号是postgress 密码是

输入如下命令进行登录

sudo -u postgres psql

9. 修改默认登录密码

修改postgres账号的默认登录密码

输入如下命令

alter user postgres with password 'test@123456'

10.设置远程登录支持

10.1 查找配置文件路径

输入查找命令如下:

find / -name postgresql.conf

查询成功如下所示:

/var/lib/pgsql/12/data/postgresql.conf

10.2 进入配置文件夹路径

输入进入文件夹命令

cd /var/lib/pgsql/12/data/

10.3.1 编辑修改postgresql.conf

10.3.1.1 打开postgresql.conf配置文件

输入打开配置文件

vi postgresql.conf
10.3.1.2 进入编辑模式

进入编辑模式输入如下命令

i
10.3.1.3 修改配置文件

在打开的文件中找到如下内容,将listen_addresses = localhost 修改为listen_addresses = '*' 如果是多个IP,以逗号分隔

listen_addresses = '127.0.0.1,192.168.1.1'
10.3.1.4 保存并退出

输入保存并退出命令,如下:

:wq

10.3.2 编辑修改pg_hba.conf

10.3.2.1 打开pg_hba.conf 配置文件

输入打开配置文件

vi pg_hba.conf
10.3.2.2 进入编辑模式

进入编辑模式输入如下命令

i
10.3.2.3 修改配置文件

在打开的文件中最后一行添加如下内容

host    all             all             0.0.0.0/0               trust
10.3.2.4 保存并退出

输入保存并退出命令,如下:

:wq

10.4 重启服务

重启服务

systemctl restart postgresql-12

11. 阿里云控制台后台开放5432端口

如果使用的是阿里云服务器,还需要开通这个端口。

操作步骤如下:

centos7 perf centos7 performing post_postgresql


点击快速创建规则

centos7 perf centos7 performing post_Centos7_02


centos7 perf centos7 performing post_centos7 perf_03


出方向也配置下

centos7 perf centos7 performing post_配置文件_04

请根据实际场景设置授权对象的CIDR,另外,0.0.0.0/0 代表允许或拒绝所有IP的访问,设置时请务必谨慎。

12 设置防火墙策略

实际上如果使用的是Centos7 ,只修改了上面阿里云管理控制台上的策略还不行,还需要在centos7 服务器上执行命令,改变自带的防火墙的端口策略

Centos7 有多种防火墙策略:FirewallD、iptables、ebtables,默认使用的是FirewallD.

  • 如果使用的是FirewallD 则执行如下命令:
firewall-cmd --permanent --add-port=5432/tcp --zone=public
  • 或者修改iptables 防火墙端口策略。
iptables -I INPUT -p tcp --dport 5432 -j ACCEPT

Tips:

  • FirewallDDynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器,是 iptables的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。
  • 与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
  • FirewallD 使用区域和服务而不是链式规则。
  • FirewallD可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
  • 在RHEL7里有几种防火墙共存:FirewallDiptablesebtables,默认是使用FirewallD来管理netfilter子系统,不过底层调用的命令仍然是iptables等。
  • FirewallD跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
  • 参考资料一:firewalld 与 iptables
  • 参考资料二: iptables详解(1):iptables概念

13. 远程客户端连接

配置连接如下所示:

centos7 perf centos7 performing post_Centos7_05

卸载篇

list all file about postgresql

rpm -qa | grep postgresql

执行效果如下图所示:

centos7 perf centos7 performing post_Postgresql_06


if you want to uninstall postgresql,please exeucte these command as below:

yum remove postgresql*

执行成功后如下图所示:

centos7 perf centos7 performing post_centos7 perf_07

参考资料


本篇完~