PostgreSQL|PostgreSQL的安装和配置

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 【7月更文挑战第2天】

【7月更文挑战第2天】

前言

PostgreSQL是一款功能强大、开源的关系型数据库管理系统(RDBMS),在处理大规模数据库和复杂查询方面表现出色。本文旨在帮助初学者从安装层面全面了解 PostgreSQL

在上一篇《学习实践|认识PostgreSQL》中也了解了一下PostgreSQL的发展和未来趋势,也了解了目前市面上开源版PostgreSQL,从上一篇的链接中或者在搜索引擎中输入PostgreSQL也可以到达你想要的官方地址来下载安装。下面就随着一起安装这个关系型数据库吧。

官方提供的安装包

不出所料的话,你已经比较熟悉如何访问官网。首先,访问官方网站(https://www.postgresql.org/),点击页面熟悉的 Download 来下载最新的 PostgreSQL 版本。根据你的操作系统选择合适的安装包,然后按照安装向导进行安装。

如何选择安装包

一般情况下,无论是开发环境还是生产环境,我们使用的Linux的版本居多,此次就以Linux安装为例,详细解释。

【选择服务平台】

从官网找到Linux,然后按照如下箭头点击下去,那么会有不同的内核版本选择,例如Red Hat Linux(RHL版本)\ Debian \ Ubuntu等等。本次安装也是使用RHL来做演示。

【选择安装方式】

依次点击下去会跳转到一个页面,提供多种安装方式。这里会有一些特定平台的安装方式:https://www.postgresql.org/download/linux/redhat/。针对红帽(RHL)的发行版支持如下

  • Red Hat Enterprise Linux
  • Rocky Linux
  • AlmaLinux
  • CentOS (7 and 6 only)
  • Fedora
  • Oracle Linux

PostgreSQL针对用户很是友好,你可以根据自己的服务器来自行选择版本、选择平台、选择架构,甚至都将操作命令给予准备好了,岂不是美哉?下面分别在Linux、MacOS、Windows安装操作,有些具体的操作明细就不再赘述。

如何使用rpm离线安装发行版

对于开发测试环境,我们都是连接互联网,可以使用YUM库来自行安装,如果是生产非联网环境,可以考虑下载RPM包后使用RPM来自行安装。离线安装,可以下滑到底部,找到这里即可下载离线包。

一般情况下,我们如果是离线安装只需要下载下面几个或这四个包之外的系统依赖包

postgresql15-15.7-1PGDG.rhel7
postgresql15-contrib-15.7-1PGDG.rhel7
postgresql15-libs-15.7-1PGDG.rhel7
postgresql15-server-15.7-1PGDG.rhel7

下载之后上传到服务器上面,然后使用RPM执行所有安装即可,当然你也可以一个一个安装包来安装,这个与MySQL也有类似之处。

rpm -ivh ./postgresql15-*PGDG.rhel7 --force --nodeps

注意⚠️在安装执行的过程中,可能会因为系统缺少相关依赖而报错,导致安装失败,需要根据报错来一一解决,然后再执行安装即可。

如何使用Homebrew在线安装发行版

习惯于MacOS开发的就更好了,在这里直接使用homebrew来搜索安装到本机器,然后使用services启动即可。

-- 1 搜索
brew search postgre
-- 2 安装(需要的版本,例如我这里安装16)
brew install postgresql@16
-- 3 启动数据库
brew services start postgresql@16
-- 4 默认情况,登录帐号为机器登录帐号,数据库为postgres
psql -U [机器的名称] -d postgres

如何使用exe安装包安装发行版

这个在官网下载,然后按照要求配置和下一步即可。

初始化数据库和配置信息

【初始化数据库信息】

在Linux中,使用 posgresql-step --innitdb 来初始化默认的数据库,可使用systemctl或者service命令启动数据库,至于使用哪一个命令主要是依据服务器的版本,选择好后即可。

如果不确定是否已经启动成功,那么可以使用ps命令查询下。

ps -ef | grep postgre

默认安装情况下,PostgreSQL会自动创建一个postgre用户,且没有设置密码。为了安全,此时我们需要切换到此用户,修改此用户的密码。

[root@204 ~]# su postgres
bash-4.2$ psql
could not change directory to "/root": Permission denied
psql (15.5)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSWORD 'Postgres#123';
ALTER ROLE

【配置文件说明】

  • postgresql.conf:是 PostgreSQL 数据库服务器的核心配置文件。它是一个文本文件,用于定制和优化数据库服务器的行为,包括但不限于网络连接设置、性能调整参数、日志记录、安全控制和资源管理等方面。通过修改这个文件,管理员可以调整数据库以满足特定的应用需求或环境条件,比如增加最大连接数、改变监听端口、配置内存使用量、设定数据存储路径、调整事务日志行为以及安全管理等。
  • pg_hba.conf:全称为 "PostgreSQL Host-Based Authentication Configuration"。这个文件负责定义客户端连接到 PostgreSQL 服务器时的认证方法,即控制哪些主机上的哪些用户可以通过何种认证方式访问哪些数据库。通过精细的访问控制规则,它可以增强数据库系统的安全性。该文件用于控制PostgreSQL服务器的访问权限,具体包括:允许哪些用户连接到哪个数据库,允许哪些IP地址连接到本服务器,以及制定连接时使用的身份验证模式。
  • pg_ident.conf:主要用于定义操作系统用户(OS user)和数据库用户(PostgreSQL user)之间的映射关系。这个映射功能使得在进行身份验证时,可以将操作系统的用户账户自动对应到数据库内的一个用户账户上,特别是在使用像 ident 或 peer 认证方法时非常有用。如果该文件存在,则系统会基于文件内容将当前登陆的操作系统用户映射为一个PostgreSQL数据库内部的身份来登陆。有些人会把操作系统的root用户映射为PostgreSQL的postgres超级用户账号。

【开启远程登录】

找到pg_hba.conf文件,找到IPv4 local connections连接修改配置即可。例如我这里增加172.16.102.220服务器访问的权限。

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             172.16.102.220          md5

找到postgresql.conf文件,放开listen_addressesport的注释并把listen_addresses后的localhost改成 *。

listen_addresses = '*'    # what IP address(es) to listen on;
          # comma-separated list of addresses;
          # defaults to 'localhost'; use '*' for all
          # (change requires restart)
port = 5432       # (change requires restart)

修改完成保存,重新启动即可。

总结

主要还是熟悉和了解PostgreSQL是如何下载并安装,关于PostgreSQL的说明性的文档还是比较齐全,有问题可以在官方找到答案,安装的具体配置下一篇吧。安了,要休息了~

引用

为方便查阅,以下为写本篇博文所引用到的链接和地址

[引用]

  1. https://www.postgresql.org/
  2. https://www.postgresql.org/download/
  3. https://www.postgresql.org/ftp/source/
  4. https://www.postgresql.org/download/snapshots/
  5. https://www.postgresql.org/download/linux/redhat/
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
9天前
|
关系型数据库 Go 网络安全
go语言中PostgreSQL驱动安装
【11月更文挑战第2天】
38 5
|
15天前
|
数据库
|
3月前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
3月前
|
SQL 关系型数据库 Linux
在CentOS 6上安装和使用PostgreSQL的方法
在CentOS 6上安装和使用PostgreSQL的方法
40 2
|
3月前
|
Ubuntu 关系型数据库 数据库
在Ubuntu 18.04上安装和使用PostgreSQL的方法
在Ubuntu 18.04上安装和使用PostgreSQL的方法
62 1
|
3月前
|
Ubuntu 关系型数据库 Linux
在Ubuntu 14.04上安装和使用PostgreSQL的方法
在Ubuntu 14.04上安装和使用PostgreSQL的方法
47 1
|
3月前
|
关系型数据库 Linux 数据库
在CentOS 7上安装和使用PostgreSQL的方法
在CentOS 7上安装和使用PostgreSQL的方法
285 0
|
3月前
|
SQL 关系型数据库 Linux
如何在 Debian 8 上安装和使用 PostgreSQL 9
如何在 Debian 8 上安装和使用 PostgreSQL 9
51 0
|
4月前
|
SQL 分布式计算 关系型数据库
实时计算 Flink版产品使用问题之在使用FlinkCDC与PostgreSQL进行集成时,该如何配置参数
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用问题之在使用FlinkCDC与PostgreSQL进行集成时,该如何配置参数
|
5月前
|
缓存 关系型数据库 数据库
postgresql.conf配置详解
postgresql.conf配置详解

相关产品

  • 云原生数据库 PolarDB