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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试和开发工作必备的17个Python自动化代码

您是否厌倦了在日常工作中做那些重复性的任务?简单但多功能的Python脚本可以解决您的问题。 我们将通过上下两个篇章为您介绍17个能够自动执行各种任务并提高工作效率Python脚本及其代码。无论您是开发人员、数据分析师,还是只是希望简化工作流程的人&…

Java学习47-Java 流(Stream)、文件(File)和IO - 其他流的使用

1.标准输入流System.in/标准输出流System.out System.in : 标准的输入流,默认从键盘输入 System.out: 标准的输出流,默认从显示器输出(理解为控制台输出) System.setOut()方法和 System.setIn()方法(结合下面介绍的打印流举例) …

实验十 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 完成以下页面设计。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Wxml <view class"container"> <view class"header"> <view class"logo"…

OSEK应用模式

1 前言 应用模式&#xff08;Application modes)用于区分不同的场景&#xff0c;以便在系统运行时&#xff0c;组织各自相互独立的OS相关的资源集合&#xff0c;是一种分而治之的思想体现。不同的应用模式是互斥的&#xff0c;即系统当前必须在一种应用模式&#xff08;且只能在…

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Proposed Approach4 Experiments5 Conclusion 文章信息&#xff1a; 原文链接&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/4…

【软考】设计模式之桥接模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.将抽象部分与其实现部分分离&#xff0c;使它们都可以独立地变化。2.桥接模式&#xff08;Bridge Pattern&#xff09;属于对象结构型模式&#xff0c;又称为柄体&#xff08;Handle an…

SpringBoot实现 QQ邮箱验证码

SpringBoot实现 QQ邮箱验证码 文章目录 SpringBoot实现 QQ邮箱验证码一、开通SMTP校验码1.登录qq邮箱2.开启SMTP服务3.发送手机短信4.得到授权码 二、回到spring项目中1.导入所需依赖2.验证码工具类3.具体实现逻辑(serviceimpl) 三、测试qq邮箱验证码 一、开通SMTP校验码 1.登…

zookeeper集群部署以及zookeeper原理

文章目录 简介工作原理特性官网地址准备节点准备环境准备JAVA主机映射 部署 简介 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服…

Codeforces Round 944 (Div. 4)(A,B,C,D,E,F,G,H)

比赛链接 这场不难&#xff0c; G G G 和 H H H 比较有意思。 G G G 题需要一定的二进制和数据结构的知识&#xff0c; H H H 题是个 2 − s a t 2-sat 2−sat 的题&#xff0c;算法名字吓人但是其实很简单&#xff0c;题目本身也很板&#xff0c;建议趁机学习一波。 A. My …

棒材直线度测量仪 专为圆形产品研发设计 在线无损检测

棒材直线度测量仪采用了先进的技术&#xff0c;能够实现在线无损检测&#xff0c;为生产过程提供了极大的便利。专为圆形产品设计&#xff0c;它能够精确测量棒材的米直线度及外径、椭圆度尺寸&#xff0c;为质量控制提供可靠的数据支持。 在线直线度测量仪不仅具有出色的性能…

Stm32串口搭配DMA实现自定义printf、scanf

前言:本文仅供学习参考使用&#xff0c;主要目的是让大家快速使用串口调试&#xff0c;文章所提及的GCC适用于Clion&#xff0c;Vscode等第三方编辑器的用户。作者有时间会继续更新^_^ 一、GCC环境 1、标准库 (1)、使用方法 在主函数while(1)初始化中&#xff0c;添加Seria…

嵌入式学习-M4的基本定时器

基本介绍 框图分析 时钟选择 计数器结构 开启重装载值寄存器的影子寄存器的工作时序图 未开启重装载值寄存器的影子寄存器的工作时序图 更新事件以及中断 相关寄存器 相关库函数