狂飙Linux平台,PostgreSQL16部署大全

2024-03-12 08:44

本文主要是介绍狂飙Linux平台,PostgreSQL16部署大全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

    • 📣 1.源码安装
      • ✨ 1.1 源码包下载
      • ✨ 1.2 创建用户
      • ✨ 1.3 创建目录
      • ✨ 1.4 本地yum源配置
      • ✨ 1.5 操作系统参数设置
      • ✨ 1.6 编译安装
      • ✨ 1.7 配置环境变量
      • ✨ 1.8 初始化DB
      • ✨ 1.9 配置DB参数
      • ✨ 1.10 数据库启动
    • 📣 2.RPM离线安装PG
      • ✨ 2.1 RPM包下载
      • ✨ 2.2 环境变量配置
      • ✨ 2.3 数据库初始化
      • ✨ 2.4 配置DB参数
    • 📣 3.YUM在线安装
      • ✨ 3.1 安装依赖包
      • ✨ 3.2 配置YUM源
      • ✨ 3.3 确认版本
      • ✨ 3.4 安装PG
      • ✨ 3.5 初始化PG
      • ✨ 3.6 DB登陆
      • ✨ 3.7 配置文件修改
    • 4.总结


PostgreSQL16的部署方式可以基于Linux,也可以在Window上部署,作为目前最火的关系型数据库,安装部署是第一步,本文详细介绍了PostgreSQL16基于Linux8操作系统的3种部署方式,并附带了避坑指南,希望带领大家开启PG的学习之路

官方文档指南
https://www.postgresql.org/docs/

📣 1.源码安装

✨ 1.1 源码包下载

官网下载安装包
https://www.postgresql.org/ftp/source/

在这里插入图片描述

✨ 1.2 创建用户

[root@rhel8 ~]# groupadd -g 60000 postgres
[root@rhel8 ~]# useradd -u 60000 -g postgres postgres
[root@rhel8 ~]# echo “postgres” | passwd --stdin postgres

在这里插入图片描述

✨ 1.3 创建目录

[root@rhel8 ~]# mkdir -p /pgccc/{pgdata,archive,scripts,backup,pgsql-16,soft}
[root@rhel8 ~]# chown -R postgres:postgres /pgccc
[root@rhel8 ~]# chmod -R 775 /pgccc

✨ 1.4 本地yum源配置

1.创建挂载路径
[root@rhel8 ~]# mkdir -p /mnt/cdrom2.挂载系统镜像光盘到指定目录
#因为光盘的格式通常是iso9660,意思是/dev/sr0挂载在/mnt/cdrom目录上
[root@rhel8 ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom
mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.3.修改yum源配置文件
编辑rhel8-local.repo文件
[root@rhel8 ~]# cd /etc/yum.repos.d
[root@rhel8 yum.repos.d]# vi rhel8-local.repo
[localREPO]
name=localhost8
baseurl=file:///mnt/cdrom/BaseOS
enable=1
gpgcheck=0[localREPO_APP]
name=localhost8_app
baseurl=file:///mnt/cdrom/AppStream
enable=1
gpgcheck=04.配置好后重建本地缓存
yum clean all 
yum makecache 
yum repolist安装依赖包
yum install -y openssl openssl-devel pam pam-devel libxml2 libxml2-devel \
libxslt libxslt-devel perl perl-devel python-devel perl-ExtUtils-Embed \
readline readline-devel bzip2 zlib zlib-devel \
gettext gettext-devel bison flex gcc gcc-c++ \
boost-devel gmp* mpfr* libevent* libpython3.6myum install libicu-devel -y
yum install zlib-devel -y

✨ 1.5 操作系统参数设置

--关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld--关闭安全服务
临时关闭:
setenforce 0永久关闭:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config查看是否成功关闭:
getenforce
cat /etc/selinux/config--资源限制
vi /etc/security/limits.conf
soft    nofile   65535
hard    nofile   65535
soft    nproc   65535
hard    nproc   65535

✨ 1.6 编译安装

[root@rhel8 ~]# cp /opt/postgresql-16.2.tar.gz /pgccc/soft
[root@rhel8 ~]# chown -R postgres:postgres /pgccc/soft
[root@rhel8 ~]# chmod -R 775 /pgccc/soft

[root@rhel8 ~]# su - postgres
[postgres@rhel8 ~]$ cd /pgccc/soft/
[postgres@rhel8 soft]$ tar zxvf postgresql-16.2.tar.gz

–配置预编译
[postgres@rhel8 postgresql-16.2]$ ./configure --prefix=/pgccc/pgsql-16 --without-readline

在这里插入图片描述

–编译及安装
[postgres@rhel8 postgresql-16.2]$ make -j 4 && make install
#编译及安装正常,则输出结尾如下

在这里插入图片描述

✨ 1.7 配置环境变量

cat >> ~/.bash_profile <<"EOF"
export LANG=en_US.UTF-8
export PS1="[\u@\h \W]\$ "
export PGPORT=5432
export PGDATA=/pgccc/pgdata
export PGHOME=/pgccc/pgsql-16
export PATH=$PGHOME/bin:$PATH:.
export PGUSER=postgres
export PGDATABASE=postgres
EOF[postgres@rhel8 ]$ source  /.bash_profile

✨ 1.8 初始化DB

[root@rhel8 ~]# su - postgres
[postgres@rhel8 ~]# /pgccc/pgsql-16/bin/initdb -D /pgccc/pgdata -E UTF8
–locale=en_US.utf8 -U postgres

在这里插入图片描述

[postgres@rhel8 ~]$ pg_ctl -D /pgccc/pgdata -l logfile start

在这里插入图片描述

✨ 1.9 配置DB参数

两个参数文件:

cat >> /pgccc/pgdata/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
#unix_socket_directories='/pgccc/pgdata'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOFcat > /pgccc/pgdata/pg_hba.conf << EOF
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0      md5
host   replication  all    0.0.0.0/0      md5
local  replication  all                    trust
EOF

✨ 1.10 数据库启动

[root@rhel8 ~]# su - postgres
[postgres@rhel8 ~]$ pg_ctl restart
[postgres@rhel8 ~]$ pg_ctl status
[postgres@rhel8 ~]$ netstat -anp | grep 5432
[postgres@rhel8 ~]$ cd /pgccc/pgdata/pg_log --日志文件

在这里插入图片描述

📣 2.RPM离线安装PG

✨ 2.1 RPM包下载

https://ftp.postgresql.org/pub/repos/yum/16/redhat/rhel-8.1-x86_64/

数据库lib库
postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
客户端安装包
postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
数据库主程序
postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm

下载libzstd依赖包,高于1.4.0版本
https://rpmfind.net/linux/rpm2html/search.php

rpm -ivh libzstd-1.4.4-1.el8.x86_64.rpm
rpm -ivh postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm

在这里插入图片描述

✨ 2.2 环境变量配置

[root@rhel8 ~]# su - postgrescat >> ~/.bash_profile <<"EOF"
export LANG=en_US.UTF-8
export PS1="[\u@\h \W]\$ "
export PGPORT=5432
export PGDATA=/pgccc/pgdata
export PGHOME=/usr/pgsql-16
export PATH=$PGHOME/bin:$PATH:.
export PGUSER=postgres
export PGDATABASE=postgres
EOF[postgres@rhel8 ]$ source  ~/.bash_profile 

✨ 2.3 数据库初始化

mkdir -p /pgccc/{pgdata,archive,scripts,backup,pgsql-16,soft}
chown -R postgres:postgres /pgccc
chmod -R 775 /pgccc

su - postgres
/usr/pgsql-16/bin/initdb -U postgres -E utf8 -D /pgccc/pgdata

在这里插入图片描述

✨ 2.4 配置DB参数

两个参数文件:
/pgccc/pgdata/postgresql.conf
/pgccc/pgdata/pg_hba.conf

cat >> /pgccc/pgdata/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOFcat > /pgccc/pgdata/pg_hba.conf << EOF
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0      md5
host   replication  all    0.0.0.0/0      md5
local  replication  all                    trust
EOF

#启动
[root@rhel8 ~]# su - postgres
[postgres@rhel8 ~]$ pg_ctl restart
[postgres@rhel8 ~]$ pg_ctl status
[postgres@rhel8 ~]$ netstat -anp | grep 5432
[postgres@rhel8 ~]$ cd /pgccc/pgdata/pg_log --日志文件

在这里插入图片描述

📣 3.YUM在线安装

✨ 3.1 安装依赖包

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel
yum install -y zlib-devel perl python36 tcl openssl ncurses-devel openldap pam
yum install -y zlib libicu

✨ 3.2 配置YUM源

sudo dnf install -y \
https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

✨ 3.3 确认版本

dnf update
yum repolist all | grep pgdg
yum repolist enabled | grep pgdg

在这里插入图片描述

✨ 3.4 安装PG

离线安装
rpm -ivh libzstd-1.4.4-1.el8.x86_64.rpm
yum install -y postgresql16 postgresql16-server
#环境变量
–root下操作
echo “export PATH=/usr/pgsql-16/bin:$PATH” >> /etc/profile

✨ 3.5 初始化PG

/usr/pgsql-16/bin/postgresql-16-setup initdb
systemctl enable postgresql-16
systemctl start postgresql-16
systemctl status postgresql-16

在这里插入图片描述

✨ 3.6 DB登陆

su - postgres
[postgres@rhel8 ~]$ psql
postgres=# \l

在这里插入图片描述

✨ 3.7 配置文件修改

cat >> /var/lib/pgsql/16/data/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
#unix_socket_directories='/var/lib/pgsql/16/data'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOF##黑名单配置
cat << EOF > /var/lib/pgsql/16/data/pg_hba.conf
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0      md5
host   replication  all    0.0.0.0/0      md5
local  replication  all                    trust
EOF

systemctl restart postgresql-16 --重启
systemctl status postgresql-16 --查看状态

4.总结

安装部署是关键,只有环境才能更好的训练,以上内容我已经在B站制作了详细视频

B站直播间:
https://www.bilibili.com/video/BV1yj421Z7iJ

这篇关于狂飙Linux平台,PostgreSQL16部署大全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800718

相关文章

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me