狂飙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

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修