PG实践|PostgreSQL的安装和配置

在这里插入图片描述

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

目录

  • 前言
  • 官方提供的安装包
  • 如何选择安装包
    • 选择服务平台
    • 选择安装方式
  • 如何使用rpm离线安装发行版
  • 如何使用Homebrew在线安装发行版
  • 如何使用exe安装包安装发行版
    • 初始化数据库信息
    • 配置文件说明
    • 开启远程登录
  • 总结

前言

PostgreSQL是一款功能强大、开源的关系型数据库管理系统(RDBMS),在处理大规模数据库和复杂查询方面表现出色。本文旨在帮助初学者从安装层面全面了解 PostgreSQL
在上一篇《PG实践|认识PostgreSQL(一)》中也了解了一下PostgreSQL的发展和未来趋势,也了解了目前市面上开源版PostgreSQL,从上一篇的链接中或者在搜索引擎中输入PostgreSQL也可以到达你想要的官方地址来下载安装。下面就随着一起安装这个关系型数据库吧。
在这里插入图片描述

官方提供的安装包

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

● 各个平台发行版本,下载和使用:https://www.postgresql.org/download/
● 二进制/源码版本,可以来这里下载和使用,目前最新的版本为 v17beta1 ,正式版本为 v16.3 :https://www.postgresql.org/ftp/source/
● 快照版本,可以来这里下载安装使用:https://www.postgresql.org/download/snapshots/

如何选择安装包

一般情况下,无论是开发环境还是生产环境,我们使用的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_addresses和port的注释并把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/

欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/650880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity UGUI实现无限滚动列表

Demo链接​​​https://download.csdn.net/download/qq_41973169/89364284http://Unity UGUI无限滚动列表 在游戏开发中,列表视图是一个常见的UI组件。实现一个高效的列表视图尤其重要,尤其是在需要展示大量数据时。本文将介绍如何在Unity中实现一个高效…

玄机-流量特征分析-蚁剑流量分析

题目简介: 1.木马的连接密码是多少 2.黑客执行的第一个命令是什么 3.黑客读取了哪个文件的内容,提交文件绝对路径 4.黑客上传了什么文件到服务器,提交文件名 5.黑客上传的文件内容是什么 6.黑客下载了哪个文件,提交文件绝对路径 一…

【UE Slate】 虚幻引擎Slate开发快速入门

目录 0 引言1 Slate框架1.0 控件布局1.1 SWidget1.1.1 SWidget的主要作用1.1.2 SWidget的关键方法1.1.3 使用SWidget创建自定义控件1.1.4 结论 1.2 SCompoundWidget1.2.1 SCompoundWidget的主要作用1.2.2 SCompoundWidget的使用示例1.2.3 SCompoundWidget的关系1.2.4 总结 1.3 …

NAT 网络转换

NAT(Network Address Translation) 网络地址转换 0x01 NAT 简介 为什么要使用 NAT IPv4 网络地址紧缺,从而出现了私有网段,来补充地址,但私有网段不课访问 internet 所以出现了 NAT 地址转换,将私有地址,转换为公网 I…

C数据结构:二叉树

目录 二叉树的数据结构 前序遍历 中序遍历 后序遍历 二叉树的创建 二叉树的销毁 二叉树的节点个数 二叉树叶子节点个数 二叉树第K层节点个数 二叉树的查找 层序遍历 判断二叉树是否为完全二叉树 完整代码 二叉树的数据结构 typedef char BTDataType; typedef str…

青蛙跳台阶问题

本期介绍🍖 主要介绍:青蛙跳台阶问题,青蛙跳台阶与斐波那契数列的关系👀。 文章目录 1. 题目2. 递归解题思路3. 迭代解题思路 1. 题目 从前有一只青蛙他想跳台阶,有n级台阶,青蛙一次可以跳1级台阶&#xff…

06_Tomcat

文章目录 Tomcat1.概念2.Tomcat安装3.Tomcat项目结构4.标准web项目结构5.Tomcat部署项目方式6.IDEA关联Tomcat6.1 构建tomcat和idea关联6.2 使用idea创建一个Javaweb工程6.3 使用idea将工程**构建**成一个app6.4 使用idea将构建好的app**部署**到tomcat中 Tomcat 1.概念 Tomc…

【MySQL事务(上)】

文章目录 前言一、什么是事务?1.关于事务的特性 二、为什么要有事务三、事务的提交方式测试事务准备工作事务的操作1.启动事务2.对事务进行回滚(只有在事务进行期间)3.提交事务(持久化)4.事务的异常情况结论 四、事务的…

三十篇:动脉脉搏:企业业务处理系统的生命力

动脉脉搏:企业业务处理系统的生命力 1. 引言 在数字经济的浪潮下,企业之间的竞争已不仅仅是产品和服务的竞争,更是信息处理能力的竞争。业务处理系统(Transaction Processing System, TPS)是企业信息系统架构的基础&a…

YOLOV8逐步分解(5)_模型训练初始设置之混合精度训练AMP

yolov8逐步分解(1)--默认参数&超参配置文件加载 yolov8逐步分解(2)_DetectionTrainer类初始化过程 yolov8逐步分解(3)_trainer训练之模型加载_yolov8 加载模型-CSDN博客 YOLOV8逐步分解(4)_模型的构建过程 在上述文章逐步分解(3)和(4&…

第十二届蓝桥杯物联网试题(国赛)

不得不说国赛相比较省赛而言确实,功能变得更加复杂,更加繁琐,特别是串口LORA通信相结合的更加频繁,且对收取的字符处理要求要更加复杂,处理判别起来会更加复杂。 对于收发数据本身来说,收发的数据本身是以…

导入 FDTD 仿真的 S 参数到 INTERCONNECT 的器件中

导入 FDTD 仿真的 S 参数到 INTERCONNECT 的器件中 正文正文 很多时候,仿真链路比较大时,我们可以将仿真的每个部分分隔开来,用 FDTD 计算出每一部分的 S 参数,然后将这些 S 参数导入 INTERCONNECT 中得到最终的仿真结果。这里我们来介绍一下这种方法。 首先,我们从右侧…

最简单的AI训练方法-RAG增强检索原理

文章目录 1、RAG( Retrieval-Augmented Generation)2、RAG的基本原理3、简化训练流程4、RAG增强检索原理图 1、RAG( Retrieval-Augmented Generation) RAG( Retrieval-Augmented Generation)是一种结合了检…

完全背包+背包装满 总结

目录 1.背包恰好装满 (1)问题是什么 (2)问题的有效状态和无效状态 (3)问题的常考形式,以及如何去处理 1.值的大小 2.组合个数 3.排列个数 2.例题 A. Cut Ribbon HDU1114 Piggy-Bank …

计算机视觉中-语义分割

语义分割 语义分割是计算机视觉中的一个关键技术,它涉及对图像中的每个像素进行类别划分,从而识别出图像中的不同物体或区域。具体来说,语义分割就是按照“语义”给图像上目标类别中的每一点打上一个标签,使得不同种类的东西在图像…

装机必备——WinRAR安装教程

装机必备——WinRAR安装教程 软件下载 软件名称:WinRAR 软件语言:简体中文 软件大小:3.38M 系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM4G或更高 下载通道①迅雷云盘丨下…

AI重塑了我的工作流

阅读内容 Inhai: Agentic Workflow:AI 重塑了我的工作流 4 种主要的 Agentic Workflow 设计模式 Reflection(反思):让 Agent 审视和修正自己生成的输出。 举例:如果有两个 Agent:一个负责 Coding&#…

【uniapp】uniapp基本介绍

目录 介绍体验uni-app优势功能框架图 uni-app组成和跨端原理基本语言和开发规范 编译器运行时(runtime)uni-app runtime包括3部分:基础框架、组件、API基础框架:组件:组件的扩展: API: 逻辑层和…

工业网关设备:HiWoo Box网关

在数字化、智能化的工业浪潮中,工业网关以其卓越的性能和广泛的应用场景,成为了工业互联的核心驱动力。作为一款高效、稳定、智能的工业网关设备,HiWoo Box网关不仅实现了工业现场设备与网络的高效连接,更为企业提供了智能化的数据…

C++青少年简明教程:switch语句

C青少年简明教程:switch语句 在C中,switch语句用于基于一个表达式的值来执行不同的代码块。这个表达式通常是一个整数类型(如int,char,或枚举类型),并且case标签必须是整数常量表达式。 语法格…