PG实践|PostgreSQL的安装和配置

news2024/9/17 3:14:19

在这里插入图片描述

📫 作者简介:「六月暴雪飞梨花」,专注于研究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,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java面试】五、MySQL篇(下)

文章目录 1、事务的特性2、并发事务问题3、事务的隔离级别4、undo log 和 redo log4.1 底层结构4.2 redo log4.3 undo log 5、MVCC5.1 隐式字段5.2 undo log 版本链5.3 ReadView5.4 ReadView的匹配规则实现事务隔离 6、MySQL的主从同步原理7、分库分表7.1 垂直分库7.2 垂直分表…

[NISACTF 2022]easyssrf、[NISACTF 2022]level-up

[NISACTF 2022]easyssrf 使用dirsearch扫描后没发现什么路径 尝试访问127.0.0.1,成功了 访问127.0.0.1/flag.php提示有文件/fl4g 使用file://协议读取文件/fl4g,提示除此页面外还有一个ha1x1ux1u.php页面。 file:///fl4g 直接访问,发现GET…

C++240527

定义自己的命名空间 my_sapce&#xff0c;在 my_sapce 中定义 string 类型的变量 s1&#xff0c;再 定义一个函数 完成 对字符串的逆置 。 #include <iostream>//导入 标准命名空间&#xff0c;cout 和 endl 标识符 存在于标准命名空间中 using namespace std;//定义了自…

C++ 函数模板与模板函数

一 代码重用技术 函数 类与对象 继承与派生 多态&#xff08;函数重载、运算符重载、虚函数、纯虚函数与抽象类&#xff09; 泛型程序设计 通用的代码需要补受数据类型的影响&#xff0c;并且可以自动适应数据类型的变化&#xff0c;这种程序设计类型称为泛型程序设计。 二 模…

特殊矩阵的压缩矩阵

目录 前提条件&#xff1a; 类型&#xff1a;对称矩阵&#xff0c;三角矩阵、三对角矩阵、稀疏矩阵 1&#xff1a;对称矩阵&#xff1a; 定义&#xff1a;n阶矩阵A 中任意一元素都有ai,jaj,i(1<i,j<n) 图像&#xff1a; 表达式&#xff1a; 计算过程&#xff1a; …

类 和 对象(二)

构造方法 接上篇&#xff0c;若每次都想下面的setDate方法给对象初始化&#xff0c;未免比较麻烦&#xff0c;那有什么方法可以让初始化更加简便呢&#xff1f; public void setDate(int year, int month, int day){this.year year;this.month month;this.day day;}答&#…

服务器端口号,如何避免与公共端口冲突

首先&#xff0c;我们需要明确什么是服务器端口号。服务器端口号是计算机操作系统分配给网络应用程序的一个数字标识&#xff0c;用于区分不同的网络服务。每个网络服务都需要一个唯一的端口号来进行标识&#xff0c;以便在通信过程中能够准确找到对应的服务。 为了避免与公共端…

恒创科技:Linux 服务器和 Windows 服务器哪个更好?

选择正确的服务器系统至关重要&#xff0c;目前广泛使用的选项是 Windows 服务器 和 Linux 服务器&#xff0c;它们各有优缺点。本文将比较 Linux 与 Windows 服务器&#xff0c;让我们来看看它们的主要区别&#xff0c;然后再决定哪种操作系统适合使用。 主要区别&#xff1a;…

Windows下mingw32编译ffmpeg5.1.4实现rtsp拉流

由于客户要求&#xff0c;要在Windows下使用mingw32编译&#xff0c;去ffmpeg.org下载需要编译的版本&#xff0c;使用msys2方法进行编译&#xff0c;使用QT5.10的编译器&#xff0c;基本上把网上的方法试了个遍&#xff0c;编译全部库总是报错出问题 查看了ffbuild文件夹中con…

Mac 电脑给android手机传输文件提示 No android device found

在开发过程中&#xff0c;我们有时候会有在电脑和手机之间传输文件的需求。 Mac电脑给android手机传输文件并不是很方便。 Google 官方提供了一个软件叫Android File Transfer&#xff0c;这个软件免费且好用。 Android File Transfer下载地址 但是使用过程中会遇到一些问题…

Android:使用Kotlin搭建MVI架构模式

一、简介MVI架构模式 M&#xff1a;Model 数据层&#xff0c;包含应用数据和业务逻辑V&#xff1a;View 界面层&#xff0c;在屏幕上显示应用数据&#xff0c;包含与界面相关的状态和界面逻辑&#xff0c;根据界面状态对象更新UI&#xff0c;界面状态定义是不可变的。这样的主要…

完全背包+背包装满 总结

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

OpenHarmony实战开发——网络组件axios可以在OpenHarmony上使用了

什么是axios 上古浏览器页面在向服务器请求数据时&#xff0c;因为返回的是整个页面的数据&#xff0c;页面都会强制刷新一下&#xff0c;这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据&#xff0c;但是从服务器端发送的却是整个页面的数据&#xff0c;十分…

C++: 二叉搜索树及实现

目录 一、二叉搜索树的概念 二、二叉搜索树的操作 2.1插入 2.2删除 1.有左子树&#xff0c;无右子树 2.有右子树&#xff0c;无左子树 3.有左子树和右子树 三、二叉搜索树的实现 要点 前言&#xff1a;为了学习map和set&#xff0c;需要先学二叉搜索树作为铺垫。 一、…

计算机毕业设计 | SpringBoot招投标系统 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…

AIGC 008-IP-Adapter文本兼容图像提示适配器用于文本到图像扩散模型

AIGC 008-IP-Adapter文本兼容图像提示适配器用于文本到图像扩散模型&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文介绍了 IP-Adapter&#xff0c;一种 高效地将预训练的图像到图像转换模型适应到新领域 的方法。它通过在预训练模型的 输入端 添加一个…

Python考试复习--day2

1.出租车计费 mile,waitmap(int,input().split(,)) if mile<3:money13wait*1 elif mile>3 and mile<15:money13(mile-3)*2.3wait*1 else:money1312*2.3(mile-15)*2.3*(10.5)wait*1 print({:.0f}.format(money)) 【知识点1】&#xff1a; map() 函数 【知识点1】&…

数字水印 | 离散余弦变换 DCT 基本原理及 Python 代码实现

目录 1 基本原理2 代码实现3 图像压缩 1 基本原理 参考博客&#xff1a;https://www.cnblogs.com/zxporz/p/16072580.html D C T \mathsf{DCT} DCT 全称为 D i s c r e t e C o s i n e T r a n s f o r m \mathsf{Discrete\ Cosine\ Transform} Discrete Cosine Transfo…

HTTPS证书——网站如何实现HTTPS访问?

实现网站HTTPS访问可以简化为以下四个基本步骤&#xff0c;确保过程既通俗易懂又条理清晰&#xff1a; 1. 申请SSL证书 - 目的&#xff1a;SSL证书是实现HTTPS加密的关键&#xff0c;它验证了网站的身份&#xff0c;并提供了加密数据所需的密钥。 - 操作&#xff1a;首先&…

面试手撕——使用两个线程交替打印1-100

记录一下使用两个线程交替打印1-100的操作: /*** description: 使用两个线程交替打印1-100* author: Jay* create: 2024-05-27 21:29**/ public class print_1_to_100 {static volatile int flag 1; //此处需要加关键字volatile保证变量之间的可见性&#xff0c;否则程序将会…