PostgreSQL16源码包编译安装

news2024/11/27 4:26:19

一、安装环境

操作系统:CentOS Linux release 7.8.2003 (Core)
PostgreSQL版本:16
服务器IP地址:192.168.0.244
Firewalld关闭、selinux关闭
笔者本次选用最新v16版本进行部署

二、pg数据库安装包下载

下载地址:https://www.postgresql.org/ftp/source/

有些小伙伴下载困难,可以直接去百度网盘下载链接
链接:https://pan.baidu.com/s/1CMXDD9nuqRXmaYJ3zyQuJQ?pwd=ovqx
提取码:ovqx
在这里插入图片描述

三、安装依赖包

执行以下命令安装所需依赖包:

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

四、安装postgreSQL

1)、在根目录下新建pgsql文件夹,并将pgsql的压缩包放入里边。
# 笔者在这里把文件夹创建到root下了,建议创建到根目录
mkdir /pgsql
[root@bogon pgsql]# ls
postgresql-16.0  postgresql-16.0.tar.gz
[root@bogon pgsql]# pwd
/root/pgsql
2)、解压压缩包
tar -zxvf postgresql-16.0.tar.gz
3)、进入加压后的文件夹
[root@bogon ~]# cd pgsql/postgresql-16.0
[root@bogon postgresql-16.0]# ls
aclocal.m4  config.log     configure     contrib    doc          GNUmakefile.in  INSTALL   meson.build        README
config      config.status  configure.ac  COPYRIGHT  GNUmakefile  HISTORY         Makefile  meson_options.txt  src
4、编译postgresql源码
./configure --prefix=/pgsql/postgresql --without-icu

注意:笔者在这里碰到编译报错,由于版本比较新也没有查到相关处理方法,索性就按照提示操作,禁用icu模块支持。–without-icu
在这里插入图片描述

选项描述
–prefix=prefix安装到prefix指定目录;默认为/usr/local/pgsql
–bindir=dir安装应用程序到dir;默认为prefix/bin
–with-docdir=dir安装文档到dir;默认为prefix/doc
–with-pgport=port设置默认服务端网络连接服务TCP端口号
–with-tcl服务端提供Tcl存储过程支持
–with-perl服务端提供perl存储过程支持
–with-python服务端提供Python存储过程支持
5、编译安装
root@bogon postgresql-16.0]# make && make install
编译安装结束没有报错证明安装成功;至此已完成postgresql的安装。进入/pgsql/postgresql目录可以看到安装后的postgresql文件。
[root@bogon postgresql-16.0]# cd /pgsql/postgresql/
[root@bogon postgresql]# ls
bin  include  lib  share

五、创建用户组postgre并创建用户postgre

[root@bogon postgresql]# groupadd postgres
[root@bogon postgresql]# useradd -g postgres postgres
[root@bogon postgresql]# id postgres
uid=1001(postgres) gid=1001(postgres) groups=1001(postgres)

六、创建postgresql数据库的数据主目录并修改文件所有者

数据库主目录可根据实际情况而创建,这里我们把主目录放在

/pgsql/postgresql/data/目录下:
[root@bogon postgresql]# mkdir data
[root@bogon postgresql]# chown postgres:postgres data
[root@bogon postgresql]# ls -al
total 16
drwxr-xr-x 7 root     root       68 Sep 19 16:23 .
drwxr-xr-x 3 root     root       24 Sep 19 16:20 ..
drwxr-xr-x 2 root     root     4096 Sep 19 16:20 bin
drwxr-xr-x 2 postgres postgres    6 Sep 19 16:23 data
drwxr-xr-x 6 root     root     4096 Sep 19 16:20 include
drwxr-xr-x 4 root     root     4096 Sep 19 16:20 lib
drwxr-xr-x 6 root     root     4096 Sep 19 16:20 share

七、配置环境变量

进入home/postgre目录可以看到.bash_profile文件。
编辑修改.bash_profile文件。
[root@bogon postgres]# vi .bash_profile 

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PGHOME=/pgsql/postgresql
export PGDATA=/pgsql/postgresql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin
export PATH
~        


在.bash_profile文件中新增加内容如下:
export PGHOME=/pgsql/postgresql
export PGDATA=/pgsql/postgresql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin

编辑修改.bash_profile文件然后保存。执行以下命令,使环境变量生效
[root@bogon postgres]# source .bash_profile

八、切换到postgre用户,并使用initdb初始化数据库

[root@bogon postgres]# su - postgres
[postgres@bogon ~]$ initdb
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /pgsql/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /pgsql/postgresql/data -l logfile start

可以看到/pgsql/postgresql/data

[root@bogon opt]# cd /pgsql/postgresql/
[root@bogon postgresql]# ls
bin  data  include  lib  share
[root@bogon postgresql]# cd data/
[root@bogon data]# ls
base    pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf
global  pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf

九、配置服务

修改/pgsql/postgresql/data/目录下的两个问价
Postgresql.conf 配置postgreSQL数据库服务的相应参数
pg_hba.conf  配置对数据库的访问权限
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)
max_connections = 100                   # (change requires resta

其中,参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的IP地址上监听,只接受来自本机的localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#号去掉,把这个地址改为*,表示在本地的所有地址上监听。

[root@bogon data]# vim pg_hba.conf
找到最下面这一行,这样局域网的人才能访问,红色为新添加内容。
# IPv4 local connections:
host    all      all             0.0.0.0/0               trust
host    all     all             127.0.0.1/32            trust
``
pg_hba.conf文件新增内容如下:
host    all      all             0.0.0.0/0               trust

十、设置postgresql开机自启动

PostgreSQL的开机自启动脚本位于postgreSQL源码目录的contrib/start-scripts路径下。
Linux文件即为Linux系统上的启动脚本

[root@bogon start-scripts]# pwd
/root/pgsql/postgresql-16.0/contrib/start-scripts
[root@bogon start-scripts]# ls
freebsd  linux  macos
1)	切换为root用户,修改Linux文件属性,添加X属性
[root@bogon start-scripts]# chmod a+x linux
2)	复制Linux文件到/etc/init.d目录下,更名为postgresql
[root@bogon start-scripts]# cp linux /etc/init.d/postgresql
3)	修改/etc/init.d/postgresql文件的两个变量
Prefix设置为postgresql的安装路径:/pgsql/postgresql
PGDATA设置为postgresql的数据目录路径:"/pgsql/postgresql/data"
4)	设置postgresql服务开启自启动
[root@bogon start-scripts]# chkconfig --add postgresql
查看开机自启服务设置成功
[root@bogon start-scripts]# chkconfig 
postgresql     	0:off	1:off	2:on	3:on	4:on	5:on	6:off
5)执行service postgresql start,启动postgreSQL服务
[root@bogon start-scripts]# service postgresql start
Starting PostgreSQL: ok
查看postgresql服务监听
[root@bogon start-scripts]# ps -elf |grep postgres
4 S root      17527   7286  0  80   0 - 47969 do_wai 16:26 pts/0    00:00:00 su - postgres
4 S postgres  17528  17527  0  80   0 - 28886 n_tty_ 16:26 pts/0    00:00:00 -bash
0 S postgres  17653      1  0  80   0 - 68572 ep_pol 16:35 ?        00:00:00 /pgsql/postgresql/bin/postgres -D /pgsql/postgresql/data
1 S postgres  17654  17653  0  80   0 - 68607 ep_pol 16:35 ?        00:00:00 postgres: checkpointer 
1 S postgres  17655  17653  0  80   0 - 68605 ep_pol 16:35 ?        00:00:00 postgres: background writer 
1 S postgres  17657  17653  0  80   0 - 68605 ep_pol 16:35 ?        00:00:00 postgres: walwriter 
1 S postgres  17658  17653  0  80   0 - 68974 ep_pol 16:35 ?        00:00:00 postgres: autovacuum launcher 
1 S postgres  17659  17653  0  80   0 - 68969 ep_pol 16:35 ?        00:00:00 postgres: logical replication launcher 
0 S root      17663  17574  0  80   0 - 28202 pipe_w 16:36 pts/1    00:00:00 grep --color=auto postgres

十一、开始测试

[root@bogon postgres]# su – postgres
[postgres@bogon ~]$ psql

1. 创建数据库用户
2. 赋予账号权限
3. 新建数据库
4. 退出

postgres=# create user pg password 'pg';
CREATE ROLE
postgres=# ALTER ROLE pg SUPERUSER;
ALTER ROLE
postgres=# create database pg;
CREATE DATABASE
postgres=# \q
  1. 重新登陆数据库
  2. 输入密码
  3. 显示数据库
[postgres@bogon ~]$ psql -U pg -d pg -h 192.168.0.244
pg=# \l
                         List of databases
 Name    |  Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges   
-----------+----------+----------+-----------------+----- 

在这里插入图片描述
至此数据库安装成功。
参考大佬链接:
https://blog.csdn.net/weixin_43230682/article/details/108403642

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

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

相关文章

【Vue2.0源码学习】生命周期篇-模板编译阶段(template)

文章目录 1. 前言2. 模板编译阶段分析2.1 两种$mount方法对比2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段,我们知道,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志着初…

无涯教程-JavaScript - CONFIDENCE.T函数

描述 CONFIDENCE.T函数使用学生的t分布返回总体平均值的置信区间。 语法 CONFIDENCE.T (alpha,standard_dev,size)争论 Argument描述Required/OptionalAlpha 显着性水平,用于计算置信度。 置信度等于 100 *(1-alpha)% 换句话说,alpha为0.05表示置信度为95&#…

CVPR 2023 | UniMatch: 重新审视半监督语义分割中的强弱一致性

在这里和大家分享一下我们被CVPR 2023录用的工作"Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation"。在本工作中,我们重新审视了半监督语义分割中的“强弱一致性”方法。我们首先发现,最基本的约束强弱一致性…

docker部署nginx下日志自动切割方法

前言:nginx采用docker部署,简单方便,但出现一个问题,就是日志没有自动切割,导致access.log 无限增大。如果非docker安装,则nginx的日志默认有切割的,那docker为何没有呢,最后发现&am…

科普:什么是视频监控平台?如何应用在场景中?

随着科技的发展,监控无处不在,就像一张密不透风的网,将生活中的角角落落都编织在一起。可是,你真的知道什么是安防视频监控平台吗?它可不止是一个简单的通电摄像头,如今的视频监控平台,涵盖了无…

挂件板死机刷固件

用ESP32-DevKitC_V4刷固件的工具flash_download_tool_3.9.5.exe 挂件板子端口接线依次为V(接3V3)、R(接TXD)、T(接RXD)、G(接GND)、L(悬空) 1.选择ESP8266&…

C# ORM框架,freesql,mysql数据库

使用C# freesql技术查询mysql数据库环境搭建 开发环境:vs2022 .NET框架:.NET4.0(winform) 开发环境搭建步骤: 1.在nuget包中搜索:FreeSql.Provider.MySql,并点击安装 2.在后台编写连接数据库…

【UE 粒子练习】07——创建动画拖尾类型粒子

效果 步骤 1. 将动画序列“Idle_ModifyBones”添加到场景中 2. 新建一个材质,命名为“Mat_AnimTrails” 材质混合模式设置为半透明,着色模型设置为无光照,设置材质为双面 材质节点如下 3. 新建一个粒子系统,命名为“P_AnimTrail”…

ChatGLM 大模型炼丹手册-参数微调

序言 回顾上一篇( 大模型炼丹手册-理论篇)的内容,大模型的整个训练流程,分为预炼、精炼和强炼三个阶段,并具有以下特点: 预炼:需要海量灵材、真火,炼制时间长,非豪门巨富难以承受;精炼:仅需少量灵材、真火即可完成,炼制时间短,性价比高;强炼:炼制过程复杂、炼制…

《Linux操作系统实战》| 面试了两个实习生,Linux 基本命令都不会(一)

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

ITIL是什么?

ITIL是什么? 1. ITIL是什么?2. ITIL 4个版本2.1 ITIL V1 - 关注IT基础架构的管理2.2 ITIL V2 - 以流程为核心(5个服务支持流程和5个服务交付流程)2.3 ITIL V3 - 服务生命周期2.4 ITIL 4 - 最新版本,强调价值创造2.5 IT…

Spring Cloud Alibaba Nacos 2.2.3 (3) - 集群 部署

1,根据 [下载与数据库配置] 配置好数据源(https://blog.csdn.net/ai_lian_shuo/article/details/133130249) 2,复制安装包多份,由于Nacos 服务之间通过 Raft 算法保证一致性,所以 Nacos 部署的节点数最好设置为>3 的奇数 3&a…

用于准确量化颅面对称性和面部生长的 3D 头影测量方案(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

面试第一个进去会不会当炮灰?

首先要说的就是,面试时第一个进入房间并不一定会成为“炮灰”,因为面试官会对你的面试表现进行综合评估,而不仅仅是因为你比其他面试者更早进入房间。因为在面试过后都会给上一个求职者打分,所以不存在说前面进去的就会被面试官打…

Kafka-UI

有多款kafka管理应用,目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…

Tungsten Fabric Rabbitmq故障处理

开源SDN软件Tungsten Fabric(以下简称TF)有时莫名其妙出现服务宕机情况。 使用TF自带工具contrail-status排查,多数时候是rabbitmq出现宕机,或者某个组件连接rabbitmq出错。 本次仅排查、处理rabbitmq问题。 1. 查rabbitmq日志发…

python进程和线程(05)

python进程和线程(05) 文章目录 python进程和线程(05)1 python进程和线程1.1 进程和线程概念1.2 并行执行1.3 核心使用语法_threading模块1.4 多线程编程1.4.1 案例单线程不能满足情况如下:1.4.2 多线程1.4.2.1 多线程创建语句1.4.2.2 案例 1.4.2 多线程传参使用1.4…

电影格式怎么转换mp4?电影格式转换教程

电影格式怎么转换mp4?平时喜欢看电影的小伙伴都知道,平时我们下载到的电影文件格式可谓是五花八门,如Mp4、Flv、AVI、WMV、MKV、MOV等。然而,相较于其他常用格式,MP4是一种使用最为广泛的视频格式,并且文件…

echarts另外存为图片

今天同事画了个Echarts,我看了下居然有下载功能!!!!(之前一直不知道) 这是原图,右上角有个下载功能, 下载后是这样的 貌似是没有了y轴的参数和x轴的参数,估计是可以配置的…

解决报错:Error:digital envelope routines::unsupported

antDesignPro版本:5.2.0 包管理工具:pnpm 本地pnpm dev(用的node版本为18,18.15.0)运行AntDesignPro后台项目时,控制台报错,截图如下。 解决方法:使用的node版本过高导致&#xff0…