​​​​Linux Shell 实现一键部署postgres15

news2024/5/18 20:27:19

postgres 前言

PostgreSQL 是一个功能强大的开源对象关系数据库系统,拥有超过 35 年的积极开发经验 这为其赢得了可靠性、功能稳健性和性能的良好声誉。

通过官方文档可以找到大量描述如何安装和使用 PostgreSQL 的信息。 开源社区提供了许多有用的地方来熟悉PostgreSQL, 了解其运作方式,并寻找职业机会。了解更多有关 如何与社区互动。

 download postgres

postgres allpgadmin all文档
downloaddownload参考

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

postgres 一键自动化部署

  • 最终实现在线下载postgres,编译安装postgres,环境变量,初始化postgres数据库,用户密码配置,用户权限设置,远程连接设置,数据库创建postdb,启动脚本创建,防火墙配置,安装包删除。
  • postgres/Report@123 #postgres用户名密码
  • postgres / postgres #用户名,组
  • /opt/pgsql/data #数据目录
  • /opt/pgsql #安装目录
  • postgresql 5432 #postgresql端口
  • /opt/pgsql/data/pg_hba.conf #远程连接授权
  • /opt/pgsql/data/postgresql.conf #远程连接授权
  • /usr/lib/systemd/system/postgresql.service #postgresql启动服务脚本
  • su  - postgres -c 'psql -c "SELECT version();"' #postgres版本获取
  • if 判断是否存在postgres用户(if ! compgen -u postgres  &> /dev/null)
  • increase indent:Tab
  • decrease indent:Shift+Tab
vim /postgres_15_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/06/02
# increase indent:Tab
# decrease indent:Shift+Tab
# install source postgres

install_postgres (){

if ! compgen -u postgres  &> /dev/null
    then
	
	if [ $? -eq 0 ];then
	
postgres_user=postgres
postgres_password=postgres@123

pgsql_opt=/opt
pgsql_url=https://ftp.postgresql.org/pub/source/v15.3/
pgsql_gz=postgresql-15.3.tar.gz
pgsql_data=data
pgsql_download=download
pgsql_pgsql=pgsql
pgsql_decompression_directory=postgresql-15.3
pgsql_installation_directory=/opt/pgsql

echo "Create user and groups for postgres Database service"
groupadd $postgres_user
useradd -m -g $postgres_user -d $pgsql_installation_directory $postgres_user

mkdir -p $pgsql_installation_directory/{/$pgsql_data,/$pgsql_download}
chown -R $postgres_user:$postgres_user $pgsql_installation_directory/$pgsql_data

echo "Firewall port development"
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
firewall-cmd --zone=public --add-port=5432/tcp --permanent && firewall-cmd --reload

echo "Add postgres users to users and user groups"
echo "$postgres_password" | passwd --stdin $postgres_user

echo "Dependent installation"
yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y ncurses-devel readline-devel zlib zlib-devel perl-ExtUtils-Embed
yum install -y lz4-devel openssl openssl-devel libxml2 libxml2-devel pam pam-devel systemd-devel
yum install -y gcc gcc-c++ net-tools make cmake

echo "download pgsql"
wget -N -P $pgsql_opt/$pgsql_download $pgsql_url$pgsql_gz

echo "install pgsql"
tar -zxf $pgsql_opt/$pgsql_download/$pgsql_gz -C $pgsql_opt
cd $pgsql_opt/$pgsql_decompression_directory
./configure --prefix=$pgsql_installation_directory && make && make install
	
echo "pgsql environment variable"
su - postgres <<EOF
echo 'umask 022' >>  ~/.bash_profile
echo 'export PGHOME=/opt/pgsql' >>  ~/.bash_profile
echo 'export PGDATA=/opt/pgsql/data' >>  ~/.bash_profile
echo 'export PATH=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/pgsql/bin' >>  ~/.bash_profile
echo 'export MANPATH=/opt/pgsql/share/man' >>  ~/.bash_profile
echo 'export LD_LIBRARY_PATH=/opt/pgsql/lib' >>  ~/.bash_profile
echo 'export LANG=en_US.utf8' >>  ~/.bash_profile
source  ~/.bash_profile
/opt/pgsql/bin/initdb -D /opt/pgsql/data
/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start
psql -c "ALTER USER postgres WITH PASSWORD 'Report@123'"
sed -i "59a\listen_addresses = '*'" /opt/pgsql/data/postgresql.conf
echo 'host    all             all             0.0.0.0/0             md5' >> /opt/pgsql/data/pg_hba.conf 
psql -c "SELECT version();"
psql -c "create database postdb owner postgres;"
psql -c "grant all privileges on database postdb to postgres;"
/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile reload
EOF

echo "postgresql.service add system"
cat >>/usr/lib/systemd/system/postgresql.service<<EOF
[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGHOME=/opt/pgsql
Environment=PGDATA=/opt/pgsql/data
ExecStart=/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data start
ExecStop=/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile stop
ExecReload=/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile reload
Restart=always

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload && systemctl enable postgresql

echo "Deleting an installation package"
rm -rf $pgsql_opt/$pgsql_download $pgsql_opt/$pgsql_decompression_directory

	echo -e "\033[32mThe postgresql Install Success...\033[0m" 
	else
	echo -e "\033[31mThe postgresql Install Failed...\033[0m" 
	exit 1
	fi
else
	echo -e "\033[33mThe postgresql Install already...\033[0m"
fi
}

main (){
	install_postgres
}
 
main

 执行一键安装postgres

sh /postgres_15_install.sh

pgadmin连接postgres

  • 端口5432
  • 用户名密码postgres/Report@123
  • postgres IP地址

 

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

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

相关文章

【是德出品,必属精品】示波器探头的11个误解

误解1. 100 MHz 的“信号”&#xff0c;使用 100 MHz 的示波器探头。 示波器探头带宽与配合它们使用的示波器带宽采用相同的方法进行规定&#xff0c;即产品响应的 -3dB 点。举例来说&#xff0c;如果使用 100 MHz 带宽的探头测量 100 MHz 1Vpp 正弦波&#xff0c;那么探头输出…

挖掘算力产业的创新力量和新型机遇|2023 开放原子全球开源峰会先进计算分论坛即将启幕

随着高新技术激发出磅礴的发展势能&#xff0c;海量的算力需求也在不断提升。如何升级和创新现有算力格局&#xff0c;打造多维感知、异构计算、智能调度的先进计算算力网&#xff1f;如何真正实现 “打破算力烟囱”、让算力像水和电一样流动起来&#xff1f;已成为时下焦点话题…

提升倾斜摄影三维模型数据的几何坐标纠正和三维重建速度具体技术方法探讨

提升倾斜摄影三维模型数据的几何坐标纠正和三维重建速度具体技术方法探讨 倾斜摄影三维模型数据的几何坐标变换和三维重建是一项非常耗时的任务&#xff0c;因此如何提高其速度一直是研究的重点。以下是一些实现倾斜摄影三维模型数据的几何坐标变换和三维重建速度的方法&#x…

网站建设对企业会有什么影响

随着互联网的发展&#xff0c;如今网络的普及&#xff0c;很多企业都开始搭建网站&#xff0c;以便展示自己的企业形象和产品。很多企业会认为&#xff0c;网站建设是一件很麻烦的事情&#xff0c;如果需要在网上宣传的话&#xff0c;就用一个链接来做好了。实际上不是这样的&a…

Linux 系统大技能,搞定 90% 日常运维

一、Linux 系统日常运维九大技能 1、安装部署 方式&#xff1a;U盘&#xff0c;光盘和网络安装 其中网络安装已经成为了目前批量部署的首选方式&#xff1a;主要工具有Cobbler和PXEkickstart 可以参考如下链接内容&#xff1a; http://www.cnblogs.com/mchina/p/centos-px…

智能语音信息处理团队14篇论文被语音技术顶会Interspeech 2023接收

近日&#xff0c;Interspeech 2023会议发出了审稿结果通知&#xff0c;语音及语言信息处理国家工程研究中心智能语音信息处理团队共14篇论文被会议接收&#xff0c;论文方向涵盖语音识别、语音合成、话者识别、语音增强、情感识别、声音事件检测等&#xff0c;各接收论文简介见…

WordPress主题Modown_v8.7主题免授权+Erphpdown15.21+团购+第三方登录

团购内置在主题里面了已不需要安装插件了,官方带免费子主题,主题无需授权和其他操作,安装启用即可免授权使用 主题简介 Modown是模板兔基于Erphpdown wordpress下载插件开发的一款全新的针对收费付费下载资源/付费查看内容/VIP会员免费下载查看/虚拟资源售卖的WordPress主题…

基于html+css的图展示104

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Vue+springboot篮球文化体育商城商铺系统的设计与实现

随着生活和工作方面的压力逐渐增加&#xff0c;人们对网购的依赖和需求也就变得越来越大。篮球文化商铺是一个能使得人在繁忙或者不喜欢出门的人&#xff0c;足不出户而又很方便地购买到自己喜爱的篮球商品&#xff0c;这样既满足了自己的心灵需要&#xff0c;也不会影响到工作…

chatgpt赋能python:Python几次方介绍

Python几次方介绍 Python是一种通用编程语言&#xff0c;具有快速开发和易于阅读的优点。Python具有各种强大的功能&#xff0c;包括能够计算数值的能力。本文将介绍Python几次方的相关知识。 Python几次方的语法 要在Python中进行几次方运算&#xff0c;可以使用双星号&…

15、Redis数据库

1、数据库相关知识简介 1、数据库分类 关系型数据库&#xff1a;Oracle,MySQL,SqlServer,DB2NoSql数据库&#xff1a;NoSQL最常见的解释是“non-relational”&#xff0c; “Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念&#xff0c;泛指非关系型的数据库&#xff0c;…

在ArcGIS中制作一幅“合格”的地图

在现代化的社会中&#xff0c;对各种不同类型的专题地图的需求以及使用更加地频繁&#xff0c;在很多小伙伴的论文写作过程中是不是也需要一张美观大方的研究区概况图呢&#xff1f;答案是肯定的。除了研究区概况图之外&#xff0c;很多地理空间相关的表达都可以借助ArcGIS软件…

电子企业搭建MES生产管理系统的解决方案

随着科技的不断进步&#xff0c;电子企业的发展也日益迅速。然而&#xff0c;在生产管理过程中&#xff0c;电子企业面临着许多挑战&#xff0c;如生产流程复杂、产品质量不易控制、生产效率低下等问题。为解决这些问题&#xff0c;电子企业需要搭建MES生产管理系统。本文将探讨…

WordPress网站如何在文章内容中插入广告或其他内容

您想在 WordPress 的帖子内容中插入广告吗&#xff1f; 您的帖子内容是访问者与您的网站最互动的地方&#xff0c;这使其成为展示广告的理想场所。 在本文中&#xff0c;我们将展示三种在 WordPress 的帖子内容中插入广告的方法。 本文网址: https://wpzhanzhang.eastfu.com…

Linux——什么是文件描述符

目录 前文 一&#xff0c;为什么有文件描述符 二&#xff0c;什么是文件描述符 2.1 文件操作接口 2.2 文件描述符 三&#xff0c;文件描述符的原理 四&#xff0c;文件描述符的分配规则 前文 本文主要是详解一下文件描述符&#xff0c;我们从1.为什么&#xff1f;2.是什么&…

使用SSH远程连接安卓手机Termux - Android手机服务器

文章目录 1.安装ssh2.安装cpolar内网穿透3.远程ssh连接配置4.公网远程连接5.固定远程连接地址 转载自cpolar极点云的文章&#xff1a;公网SSH远程连接Termux – 电脑使用安卓Termux 「无需公网IP」 使用安卓机跑东西的时候&#xff0c;屏幕太小&#xff0c;有时候操作不习惯。不…

阿里云推出基于大模型的工作学习AI助手“通义听悟”

文章目录 人工智能福利文章什么是通义听语通义听语有哪些优势通义听语能做什么体验地址写在最后 ✍创作者&#xff1a;全栈弄潮儿 &#x1f3e1; 个人主页&#xff1a; 全栈弄潮儿的个人主页 &#x1f3d9;️ 个人社区&#xff0c;欢迎你的加入&#xff1a;全栈弄潮儿的个人社区…

【已解决】MacOS13.4 arm64 python3.8 pycharm anaconda无法安装wordcloud问题

环境 操作系统&#xff1a;MacOS 13.4 系统架构&#xff1a;osx-arm64 python版本&#xff1a;3.8 编辑器&#xff1a;PyCharm 问题 在PyCharm的terminal中安装wordcloud&#xff0c;但总是装不上&#xff0c;显示如下报错&#xff1a; ERROR: Failed building wheel for wo…

跨境电商补单策略:如何提升销量和权重

跨境电商经营中&#xff0c;有一种快速提升产品权重和销量的策略&#xff1a;补单 补单可以帮助产品快速积累评论&#xff0c;提升排名&#xff0c;并打造爆款&#xff0c;然而&#xff0c;当前市场上大约90%的测评资源质量低下&#xff0c;好的资源寥寥无几 而且跨境电商的经…

航天航空飞机火箭模型3D打印制作服务/增材制造航空模型制作

3D打印是对“增材制造”这种材料成型工艺的通俗叫法。3D打印是制造业有代表性的颠覆性技术&#xff0c;区别于传统的材料成型工艺&#xff0c;在加工的过程中材料质量不减反增&#xff0c;通过“自下而上”的材料累加来成型。 【CASAIM智能制造】是中科院下属机构&#xff0c;作…