PostgreSQL源码安装

文章目录

  • 一、先决条件检查
  • 二、源码安装
    • 1、获取源代码
    • 2、编译安装
      • 1.运行 configure
      • 2.运行make
    • 3、PostgreSQL的配置
    • 4、安装contrib目录下的工具
  • 三、初始化数据库
    • 1、创建数据库管理员
    • 2、创建数据库实例
    • 3、启动和停止数据库
    • 4、设置数据库密码
  • 四、PostgreSQL的简单配置
    • 1、pg_hba.conf 的配置
    • 2、postgresql.conf 的配置
    • 3、数据库日志相关参数

一、先决条件检查

根据官方文档内容,我门将进行一些检查,以便能够正确安装
在这里插入图片描述

make --version

在这里插入图片描述

二、源码安装

1、获取源代码

官网链接
在这里插入图片描述
选择需要的版本,这里我使用14.10
在这里插入图片描述
下载包,并上传到服务器上

2、编译安装

1.运行 configure

tar xvf postgresql-14.10.tar

在这里插入图片描述

cd postgresql-14.10/

在这里插入图片描述

./configure --prefix=/usr/local/pgsql14.10 --with-perl --with-python

在这里插入图片描述
可以看到缺少readline包

yum -y install -y readline-devel

在这里插入图片描述
再次执行先决检查,通过
在这里插入图片描述

2.运行make

编译安装的“第二板斧”是make命令,该命令比较简单,直接运行即可

make

在这里插入图片描述

sudo make install

在这里插入图片描述

前面我们看到–prefix设置的路径为“/usr/local/pgsql14.10”,如果不进行设置,默认的路径将是“/usr/local”,为什么要在此路径上加上PostgreSQL的版本号呢?这是为了方便升级。make install命令运行完成后,还要进入“/usr/local”目录,为“/usr/local/pgsql16.2”建立一个/usr/local/pgsql链接:

cd /usr/local
sudo ln -sf /usr/local/pgsql14.10 /usr/local/pgsql

在这里插入图片描述

3、PostgreSQL的配置

配置环境变量并设置共享库

export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib

如果想让以上配置对所有的用户生效,可以把以上内容添加到/etc/profile文件中

vim /etc/profile

在这里插入图片描述

source /etc/profile

4、安装contrib目录下的工具

contrib下有一些工具比较实用,一般用户都会安装这些工具,其安装的方法也与Linux下的编译过程相同,安装命令如下:

cd /root/postgresql-14.10/contrib
make
sudo make install

在这里插入图片描述

三、初始化数据库

1、创建数据库管理员

# 使用useradd命令创建用户(pg默认是postgres,但若还有其他类型数据库,个人为了方便管理统一用mydba)
sudo useradd mydba
#设置密码
sudo passwd mydba
# 系统将提示你输入密码,输入后按Enter键确认,再次输入以确认密码

# 若要赋予该用户sudo权限(可选,取决于你希望mydba用户是否具有管理员权限)
sudo usermod -aG wheel mydba  # 对于使用wheel组的系统

# 确认用户和组信息已生效
id mydba

2、创建数据库实例

添加并修改目录权限

mkdir -p /home/mydba/pgdata
chown -R mydba:mydba /home/mydba/
chmod -R 700 /home/mydba/
# 将目录权限设置为700,这意味着仅属主(这里是postgres用户)有权读取、写入和执行目录内的内容,其他用户无权访问,这是出于数据库安全性的考虑。

首先设定数据库的数据目录的环境变量:

echo 'export PGDATA=/home/mydba/pgdata' >> /etc/profile
source /etc/profile

然后执行下面的命令创建数据库簇:

su mydba
initdb

在这里插入图片描述
至此,数据库实例的创建就完成了。

3、启动和停止数据库

启动数据库的命令如下:

pg_ctl start -D $PGDATA

在这里插入图片描述
其中,环境变量“PGDATA”指向具体的PostgreSQL数据库的数据目
录,示例如下:

pg_ctl start -D /home/mydba/pgdata

停止数据库的命令如下:

pg_ctl stop -D $PGDATA [-m SHUTDOWN-MODE]

在这里插入图片描述
较常用的关闭数据库的方法是fast模式

4、设置数据库密码

PostgreSQL的默认用户名通常是postgres(我这里用的是osdba),但并没有默认密码。在首次安装PostgreSQL时,系统不会自动生成一个默认密码,而是需要你在安装后手动设置。

在很多Linux发行版中,安装完成后,作为超级用户(如root)可以通过以下步骤为mydba用户设置密码:

sudo -u mydba psql -d postgres
# 进入psql命令行后,可以执行以下命令设置密码
ALTER USER mydba WITH PASSWORD '123';
\q

在这里插入图片描述

四、PostgreSQL的简单配置

PostgreSQL数据库的配置主要是通过修改数据目录下的 postgresql.conf和pg_hba.conf 文件来实现的。

1、pg_hba.conf 的配置

默认创建的数据库无法接受远程连接,因为默认情况下pg_hba.conf中没有相应的配置项。我们可以在pg_hba.conf文件中加入以下命令行:

vim pg_hba.conf

#该命令允许任何用户远程连接本数据库,连接时需要提供密码。
host    all     all             0/0                 md5

pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。

2、postgresql.conf 的配置

修改监听的IP和端口
在数据目录下编辑 postgresql.conf 文件,找到如下内容:

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)

其中,参数“listen_addresses”表示监听的IP地址,默认是在“localhost”处监听,也就是在IP地址“127.0.0.1”上监听,这会造成远程主机无法登录该数据库,如果想从其他机器上登录该数据库,需要把监听地址改成实际网络的地址,一种简单的方法是把地址改成“*”,表示在本地的所有地址上监听,命令如下:

listen_addresses = '*'         # what IP address(es) to listen on;
#port = 5432                            # (change requires restart)

参数“port”表示监听的数据库端口,默认为“5432”,可以使用默认设置。如果一台机器上安装了多个数据库实例(如安装了多个不同版本的PostgreSQL),可以设置为不同的端口。
对于这两个参数的修改,需要重启数据库才能生效。

3、数据库日志相关参数

还是在 postgresql.conf ,下面来看看与日志相关的几个参数:
日志的收集一般是需要打开的,所以需要进行如下设置:

logging_collector = on

注意,在新版本的数据库中,以上参数默认已打开,如PostgreSQL10版本。
日志的目录一般使用默认值即可(旧版是 pg_log):

log_directory = 'log'                   # directory where log files are written,
                                        # can be absolute or relative to PGDATA

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

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

相关文章

Java项目实现报文数据校验注解方式(必输项、值大小)

普通项目 导入校验依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.1.0.Final</version></dependency><dependency><groupId>javax.validation</…

系统定期执行命令的方法

系统定期执行命令的方法 一、进入超级用户下 执行命令&#xff1a;sudo su 二、添加要执行的命令 例子&#xff1a;每天0点执行一次myapp.sh命令 先后输入&#xff1a;crontab -e、 1、 回车 设置每天0点执行一次myapp.sh操作&#xff0c;需要写绝对路径 含义&#xff1…

RK3576 Camera:资源介绍

RK3576是RK今年上市的中高端旗舰芯片&#xff0c;定位弱于RK3588。这篇文章主要分享一下RK3576这颗主控芯片的camera资源。 &#xff08;1&#xff09;RK3576 camera资源 ①RK3576 camera硬件框图 RK3576的camera硬件框图如图所示&#xff0c;拥有一路4lane的DCPHY&#xff…

Spring Cloud Consul 4.1.1

该项目通过自动配置和绑定到 Spring 环境和其他 Spring 编程模型习惯用法&#xff0c;为 Spring Boot 应用程序提供 Consul 集成。通过一些简单的注释&#xff0c;您可以快速启用和配置应用程序内的常见模式&#xff0c;并使用基于 Consul 的组件构建大型分布式系统。提供的模式…

银河麒麟v10 重装系统恢复原home分区

现象&#xff1a;系统还原后在锁屏状态下输入密码后闪退回锁屏 ctrl alt f1切到命令行模式&#xff0c;查看/home目录下的用户文件夹里无文件 1、blkid找到data分区的uuid和设备编号&#xff0c;记录下来&#xff1b; 2、sudo mount /dev/sda5 3、sudo vi /etc/fstab&#xf…

JAVA中类和对象(承接上次的补充)

目录&#xff1a; 一.static修饰成员方法 二.static成员变量初始化 三.代码块 一.static修饰成员方法: 1.一般类中的数据成员都设置为 private &#xff0c;而成员方法设置为 public &#xff0c; 问&#xff1a;那设置之后&#xff0c;Student类中&#xff0c;被Student修饰…

数据结构——01-抽奖数人-链表-实验题目与解答

数据结构抽奖数人链表实验题目与解答 一、**实验题目** 抽奖游戏&#xff1a; n个人围成一圈&#xff0c;由第一个人开始&#xff0c;依次报数&#xff0c;数到第m人&#xff0c;便抽出来作为中奖人&#xff0c;然后从他的下一个人数起&#xff0c;数到第m人&#xff0c;再抽…

VALSE 2024合合信息 | 文档解析与向量化技术加速多模态大模型训练与应用

第十四届视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;近期在重庆悦来国际会议中心圆满举行&#xff0c;由中国人工智能学会&#xff08;CAAI&#xff09;、中国图象图形学会&#xff08;CSIG&#xff09;、中国民族贸易促进会主办&#xff0c;重庆邮电大学承办…

goconvey测试框架的使用

尽管Golang已经内置了功能强大的testing包&#xff0c;其易用性令人称赞。然而&#xff0c;当我们希望更直观地处理和判断测试结果时&#xff0c;结合使用goconvey能为我们提供极大的便利。goconvey不仅为我们提供了丰富的断言函数&#xff0c;这些函数还极大地方便了我们在进行…

Web测试是在测什么?容易被忽视的小细节总结!

随着Internet和Intranet/Extranet的快速增长&#xff0c;Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上&#xff0c;电子商务迅速增长&#xff0c;早已超过了国界。范围广泛的、复杂…

C# XPTable in .net6(XPTable控件使用说明八)

经过作者schoetbi、armin-pfaeffle的努力&#xff0c;XPTable已经可以在 winform .net6 .net8的环境下使用&#xff0c;版本升级到了2.0&#xff0c;这样就可以在winform下同时使用XPTABLE和EFcore, 这样就可以解决大部分的场景了。

网络工程师----第二十八天

计算机基础 第五章&#xff1a;运输层 运输层的两个协议&#xff1a; 1、传输控制协议TCP&#xff1a; TCP最主要的特点&#xff1a; (1)TCP是面向连接的。应用程序在使用TCP协议之前&#xff0c;必须先建立连接。在传送数据完毕后&#xff0c;必须释放已经建立的TCP连接。…

【数据分析面试】43.寻找给小费最多的客人(Python:字典用法)

题目&#xff1a; 寻找给小费最多的客人 &#xff08;Python) 给定两个非空列表user_ids和tips&#xff0c;编写一个名为most_tips的函数&#xff0c;用于找到给小费最多的客户。 示例&#xff1a; 输入&#xff1a; user_ids [103, 105, 105, 107, 106, 103, 102, 108, 1…

【基于 PyTorch 的 Python 深度学习】5 机器学习基础(1)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了机器学习的基本任务、机器学习的一般流程&…

5G消息和5G阅信的释义与区别 | 赛邮科普

5G消息和5G阅信的释义与区别 | 赛邮科普 在 5G 技术全面普及的当下&#xff0c;历史悠久的短信服务也迎来了前所未有的变革。5G 阅信和 5G 消息就是应运而生的两种短信形态&#xff0c;为企业和消费者带来更加丰富的功能和更加优质的体验。 这两个产品名字和形态都比较接近&am…

有奖调研 | OpenSCA开源社区用户调研问卷

调研背景&#xff1a; 亲爱的OpenSCA开源社区用户&#xff0c;感谢您一路以来的支持与相伴。随着OpenSCA开源社区的不断发展&#xff0c;我们持续专注安全开发与开源治理实践&#xff0c;为全球用户提供一站式审查治理、SaaS云分析和精准情报预警的开源数字供应链安全赋能。 为…

【离散数学】偏序关系中盖住关系的求取及格论中有补格的判定(c语言实现)

实验要求 求n的因子函数 我们将n的因子存入数组中&#xff0c;n的因子就是可以整除n的数&#xff0c;所以我们通过一个for循环来求。返回因子个数。 //求n的因子,返回因子个数 int factors(int arr[], int n) {int j 0;for (int i 1; i < n; i){if (n % i 0){arr[j] i…

财务风险管理:背后真相及应对策略

市场经济蓬勃发展&#xff0c;机遇与风险并存也是市场经济的一项重要特征。而财务状况的好坏影响着一个企业的发展前景&#xff0c;作为市场经济的必然产物&#xff0c;财务风险贯穿于企业的一切生产经营活动中&#xff0c;无法预知也不以人的意志为转移。 一、企业财务风险的特…

unordered_set(无序容器)

特点 它可以存储不重复的元素集合。容器的特点是内部元素没有特定的顺序&#xff0c;因此查找、插入和删除操作的平均时间复杂度是O(1)。unordered_set是基于哈希表实现的&#xff0c;所以在使用时需要提供一个哈希函数和相等函数。 成员函数 查找&#xff08;只能查找元素是否…

最长数字子串-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第62讲。 最长数字子串&…