Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在 CentOS 8 上安装 Postgresql

如何在 CentOS 8 上安装 Postgresql

作者头像
雪梦科技
发布于 2020-05-11 09:16:59
发布于 2020-05-11 09:16:59
6.8K00
代码可运行
举报
文章被收录于专栏:ITCoderITCoder
运行总次数:0
代码可运行

PostgreSQL 或者 Postgres 是一个开源的,多用途的关系型数据库管理系统。它有很多高级特性,可以允许你构建容错的环境或者复杂的应用。

在这篇指南中,我们将会讨论如何在 CentOS 8 上安装 PostgreSQL 数据库服务器。在选择你要安装哪个版本之前,请确认你的应用支持它。

我们将会探索 PostgreSQL 数据库管理的基础知识。

一、 前提条件

为了安装软件包,你需要以 root 或者其他有 sudo 权限的用户身份登录系统。

二、 在 CentOS 8 上安装 Postgresql

在写这篇文章的时候,有两个 PostgreSQL 服务器的版本可用来安装:9.6 和 10.0 。

为了列出可用的 PostgreSQL 模块,请输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dnf module list postgresql

输出结果显示,postgresql 有两个版本。每个版本都有两个部分:服务器和客户端。 服务器版本 10,是默认的版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CentOS-8 - AppStream
Name          Stream    Profiles              Summary
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module
postgresql    9.6       client, server [d]    PostgreSQL server and client module

01.为了安装默认的版本,PostgreSQL 服务器版本 10.0,输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install @postgresql:10

02.为了安装 PostgreSQL 服务器版本 9.6,输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install @postgresql:9.6

你可能还想安装 contrib 包,它们给 PostgreSQL 数据库提供一些额外的特性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo dnf install postgresql-contrib

一旦安装完成,使用下面的命令初始化 PostgreSQL 数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo postgresql-setup initdb
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Initializing database ... OK

启动 PostgreSQL 服务,并且启用开机启动 PostgreSQL 服务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable --now postgresql

使用psql工具连接 PostgreSQL 数据库服务器并且打印它的版本号,以验证安装过程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo -u postgres psql -c "SELECT version();"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

三、PostgreSQL 角色和身份认证方法

PostgreSQL 支持多种身份认证方法。最常用的方法如下:

  • Trust - 只要满足pg_hba.conf定义的条件,一个角色就可以不使用密码就能连接服务器
  • Password - 通过密码,一个角色可以连接服务器。密码可以被存储为 scram-sha-256, md5, 和 password(明文)。
  • Ident - 仅仅支持 TCP/IP 连接。它通常通过一个可选的用户名映射表,获取客户端操作系统用户名。
  • Peer - 和 Ident 一样,仅仅支持本地连接。

PostgreSQL 客户端身份验证通常被定义在pg_hba.conf文件中。默认情况下,对于本地连接,PostgreSQL 被设置成身份认证防范 peer。

为了以postgres用户身份登录 PostgreSQL 服务器,首先切换用户,然后使用psql工具访问 PostgreSQL。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo su - postgres
psql

从这里开始,你可以与 PostgreSQL 实例交互。退出 PostgreSQL Shell,输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\q

你也可以不切换用户,而使用sudo命令访问 PostgreSQL:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo -u postgres psql

通常,postgres用户仅仅在本地被使用。

四、创建 PostgreSQL 角色和数据库

仅仅超级用户和拥有CREATEROLE权限的角色可以创建新角色。

在下面的例子中,我们创建一个名称为john的角色,一个名称为johndb的数据库,并且授予数据库上的权限

01.首先,连接到 PostgreSQL shell:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo -u postgres psql

02.通过下面的命令,创建一个新的 PostgreSQL 角色:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create role john;

03.创建一个新的数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database johndb;

04.通过下面的查询语句,授予用户在数据库上的所有权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grant all privileges on database johndb to john;

五、启用远程访问 PostgreSQL 服务器

默认情况下,PostgreSQL 服务器仅仅监听本地网络接口:127.0.0.1

为了允许远程访问你的 PostgreSQL 服务器,打开配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /var/lib/pgsql/data/postgresql.conf

往下滑动到CONNECTIONS AND AUTHENTICATION部分,并且添加或者编辑下面的行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

保存文件,并且使用下面的命令重启 PostgreSQL 服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart postgresql

使用ss工具来验证这个修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ss -nlt | grep 5432
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*
LISTEN   0    128    [::]:5432      [::]:*

上面的输出显示 PostgreSQL 服务器已经在监听所有网络接口(0.0.0.0)的默认端口。

最后一步是,通过编辑pg_hba.conf文件,配置服务器去接受远程连接。

下面是一些例子,展示了不同的用户示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

六、总结

CentOS 8 提供了两种 PostgreSQL 版本:9.6 和 10.0。

获取更多关于这个主题的信息,请浏览:PostgreSQL 官方文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年12月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Debian 9上安装PostgreSQL
PostgreSQL,通常简称为Postgres,是一种开源的通用对象 - 关系数据库管理系统。 PostgreSQL具有许多高级功能,如在线备份,即时恢复,嵌套事务,SQL和JSON查询,多版本并发控制(MVCC),异步复制等。
双面人
2019/04/10
2.6K0
如何在 Ubuntu 20.04 上安装 PostgreSQL
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-postgresql-on-ubuntu-20-04/
雪梦科技
2020/05/25
12.1K0
如何在 Ubuntu 20.04 上安装 PostgreSQL
PostgreSQL入门
这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。
老马
2019/05/25
1.9K0
如何在CentOS 7上安装PostgreSQL关系数据库
PostgreSQL关系数据库系统是一个功能强大的,可扩展的,并符合标准的开源数据库平台。本指南将帮助您在CentOS 7 Linode上安装和配置PostgreSQL。
沈唁
2018/09/20
4.6K0
PostgreSQL本地/远程登陆配置
关于PostgreSQL与PostGIS使用,可参看《PostgreSQL与PostGIS的基础入门》。本篇文章主要介绍如何实现本地与远程登陆,并对其认证方式进行总结。
create17
2019/04/17
14K0
PostgreSQL本地/远程登陆配置
PostgreSQL创建角色,并把数据库赋给角色
目前位于数据库postgres下。创建tom用户。对于PostgreSQL,用户tom相当于是一种role(角色):
双面人
2019/12/25
4.1K0
PostgreSQL入门和高维向量索引
wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-ppc64le/pgdg-centos96-9.6-3.noarch.rpm yum install pgdg-centos96-9.6-3.noarch.rpm
黄规速
2022/04/17
1.8K0
CentOS 7.9 安装 Postgresql 9.6
下面的步骤都是按照 9.6 版本进行安装的,如果时境过迁,9.6 也不支持了,只需要更改下面的版本号即可,将 9.6 版本改为你安装的版本,例如版本 10 ,只需要将下面所有的 9.6 改为 10 。
wsuo
2021/08/31
1.1K0
CentOS 7.9 安装 Postgresql 9.6
CentOS7安装配置PostgreSQL9.6 转
PostgreSQL 9.6.3:https://www.postgresql.org/download/linux/RedHat/
双面人
2019/05/21
1.4K0
Vapor奇幻之旅(07 连接服务端PostgreSQL)
在配置ubuntu16.4服务器上的postgresql数据库时遇到了很多问题,网上查了很多资料,都没有太深的理解。于是我先查看了官方文档,先搞清楚这些配置是做什么的,再根据需要配置自己的服务器,这样就可以清楚的知道自己在做什么了,下面讲讲这些配置是怎样的。
Leacode
2018/08/22
1.2K0
Vapor奇幻之旅(07 连接服务端PostgreSQL)
CentOS7 部署 PostgreSQL
陳斯托洛夫斯記
2024/08/07
980
在macOS上安装&配置PostgreSQL
Homebrew以及dmg安装包安装都可以,不过Homebrew跟dmg包图形化安装还是有些区别,根据自己习惯任选其一即可,不过为了方便理解后续的操作,还是简单介绍下两种安装方式的区别
KenTalk
2023/04/07
13.6K0
在macOS上安装&配置PostgreSQL
PostgreSQL安装和使用教程
本篇博客将为您提供关于PostgreSQL数据库的安装和使用教程,帮助您快速上手使用这个强大的开源关系型数据库系统。我们将介绍安装过程和基本使用方法,让您能够轻松开始使用PostgreSQL。
猫头虎
2024/04/08
9560
PostgreSQL安装和使用教程
如何保护PostgreSQL免受攻击
服务器刚搭建,流量少,没有任何对黑客有价值的东西,你可能就会忽视相关的安全问题。但是,许多漏洞攻击都是自动化的,专门用于查找你服务中的BUG。这些服务器主要目的就是攻击,与你服务器中的数据并无多大关系。
独钓寒江雪_Ly
2018/08/02
1.5K0
在CentOS 7上安装&配置PostgreSQL 12
PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。
KenTalk
2020/03/02
16.4K1
Ubuntu PostgreSQL安装和配置
config /etc/postgresql/9.5/main data /var/lib/postgresql/9.5/main locale en_US.UTF-8 socket /var/run/postgresql port 5432
qubianzhong
2019/07/01
1.8K0
Ubuntu PostgreSQL安装和配置
从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16
DBA实战
2024/09/06
2490
从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16
如何在RHEL 8中安装PostgreSQL
PostgreSQL,也称为Postgres,是一个功能强大的开源对象关系数据库管理系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地保存和扩展最复杂的数据工作负载。
星哥玩云
2022/08/18
6.6K0
如何在RHEL 8中安装PostgreSQL
Linux 上安装 PostgreSQL
可以参考:https://www.cnblogs.com/freeweb/p/8006639.html#top
别先生
2020/09/01
6.5K0
Linux 上安装 PostgreSQL
如何在Ubuntu 18.04上使用PostgreSQL 10设置逻辑复制
在为生产设置应用程序时,准备好多个数据库副本通常很有用。保持数据库副本同步的过程称为复制。复制可以为大量同时读取操作提供高可用性水平扩展,同时减少读取延迟。它还允许在地理上分布的数据库服务器之间进行对等复制。
葡萄
2018/10/29
3K0
相关推荐
如何在Debian 9上安装PostgreSQL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验