阿里云 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端口
如果使用的是阿里云服务器,还需要开通这个端口。
操作步骤如下:
点击快速创建规则
出方向也配置下
请根据实际场景设置授权对象的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:
FirewallD
即Dynamic Firewall Manager of Linux systems
,Linux系统的动态防火墙管理器,是 iptables的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。- 与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
- FirewallD 使用区域和服务而不是链式规则。
- FirewallD可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
- 在RHEL7里有几种防火墙共存:
FirewallD
、iptables
、ebtables
,默认是使用FirewallD来管理netfilter子系统,不过底层调用的命令仍然是iptables等。- FirewallD跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
- 参考资料一:firewalld 与 iptables
- 参考资料二: iptables详解(1):iptables概念
13. 远程客户端连接
配置连接如下所示:
卸载篇
list all file about postgresql
rpm -qa | grep postgresql
执行效果如下图所示:
if you want to uninstall postgresql,please exeucte these command as below:
yum remove postgresql*
执行成功后如下图所示:
参考资料
本篇完~