PostgreSQL 一键安装部署脚本化

由于在一些环境下无法配置外网,导致安装组件的时候非常的麻烦,存在各种依赖或者包的版本问题。为了简化这种重复性的动作,一键安装 PostgreSQL 成为了一种需要。

下面是一键安装 PostgreSQL 数据库的脚本:
[root@localhost postgresql-12]# cat postgresql_install.sh
#!/bin/bash
# -------------------------------------------------------------------------------
# ScriptName: postgresql_install.sh
# Author: cloud.com 云端
# Description: 一键部署 PostgreSQL
# Version: v1.0
# Date: 2023-06-01
# -------------------------------------------------------------------------------


echo  "
    ┌──────────────────────────────────────────────────────────────────────┐
    │                                                                      │
    │                ∙ Linux 环境下一键部署 PostgreSQL v1.0 ∙              │
    │   (One-click postgresql installation based on Linux environment)     │
    │                                                                      │
    │   ∙ Description :  基于 Linux 环境实现 PostgreSQL 一键式部署         │
    │   ∙ Author      :  cloud.com 云端                                    │
    │   ∙ E-Mail      :  2429425191@qq.com                                 │
    │   ∙ Version     :  v1.0                                              │
    │                                                                      │
    └──────────────────────────────────────────────────────────────────────┘
"

# 关闭系统防火墙和安全机制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

# 关闭邮件服务以及 NetworkManager
systemctl stop postfix.service
systemctl disable postfix.service
systemctl stop NetworkManager
systemctl disable NetworkManager

# 修改文件句柄数
cat > /etc/security/limits.conf << EOF
root            hard    nproc           65535
root            soft    nproc           65535
*               hard    nproc           65535
*               soft    nproc           65535
root            hard    nofile          65535
root            soft    nofile          65535
*               hard    nofile          65535
*               soft    nofile          65535
EOF
sed -i 's/*          soft    nproc     4096/*          soft    nproc     65535/' /etc/security/limits.d/20-nproc.conf


# 修改环境变量提示符
cat > /etc/profile << EOF
export PS1='[\u@\h \W]\$ '
EOF
source /etc/profile

# 删除系统自带的 postgresql
rpm -qa | grep postgres
rpm -e postgresql-9.2.24-8.el7_9.x86_64 --nodeps
rpm -e postgresql-server-9.2.24-8.el7_9.x86_64 --nodeps
rpm -e postgresql-libs-9.2.24-8.el7_9.x86_64 --nodeps
rpm -qa | grep postgresql | xargs rpm -e --nodeps

# 安装 postgresql
userdel postgres
groupdel postgres
groupadd postgres
useradd -d /home/postgres -g postgres postgres
cd /usr/local/src/postgresql-12/
chmod 755 /usr/local/src/postgresql-12/postgresql.conf
chmod 755 /usr/local/src/postgresql-12/pg_hba.conf
yum localinstall -y *
cat > /etc/profile.d/setenv-postgres.sh << EOF
export PGHOME=/home/postgres
export PGDATA=/home/postgres/pgsql-12/data
export PGLIBRARY=/usr/pgsql-12/lib
export PATH=\$PATH:/usr/pgsql-12/bin
EOF
source /etc/profile
su - postgres -c "/usr/pgsql-12/bin/initdb -D /home/postgres/pgsql-12/data"
mkdir -p /home/postgres/pgsql-12/data/archive
mkdir -p /home/postgres/pgsql-12/data/log
cp /usr/local/src/postgresql-12/postgresql.conf /home/postgres/pgsql-12/data/
cp /usr/local/src/postgresql-12/pg_hba.conf /home/postgres/pgsql-12/data/
chown -R postgres:postgres /home/postgres
su - postgres -c "/usr/pgsql-12/bin/pg_ctl -D /home/postgres/pgsql-12/data -l logfile start"
su - postgres -c "/usr/pgsql-12/bin/psql -h 127.0.0.1 -p 5432 -U postgres -d postgres"
/usr/pgsql-12/bin/psql -h 127.0.0.1 -p 5432 -U postgres -d postgres -c "alter user postgres with password 'Cnhis.com@2023';"

这个是另外的一种可以安装自己的需求简单修改一下即可
[root@localhost postgresql-14]# cat install_postgresql.sh
#!/bin/bash

# *******************************************
# Author:            peter
# FileName:          install_postgresql.sh
# Date:                2023-08-11
# Description:      Install PostgreSQL
# *******************************************

postgres_user=postgres
postgres_password=centos@2023
pgsql_install_dir=/home/postgres/pgsql-14
pgsql_data=/home/postgres/pgsql-14/data

echo "Create user and groups for postgres Database service"
groupadd $postgres_user
useradd -g $postgres_user $postgres_user -d /home/postgres
mkdir -p $pgsql_install_dir $pgsql_data
chown -R $postgres_user:$postgres_user $pgsql_install_dir

echo "Dependent installation"
yum install -y gcc gcc-c++ net-tools sysstat make cmake readline readline-devel zlib zlib-devel lz4-devel openssl openssl-devel libxml2 libxml2-devel pam pam-devel ncurses ncurses-devel perl-ExtUtils-Embed libxslt libxslt-devel perl perl-devel flex flex-devel uuid uuid-devel

echo "Install pgsql"
tar -zxvf /usr/local/src/postgresql-14.7.tar.gz
cd /usr/local/src/postgresql-14.7
./configure --prefix=$pgsql_install_dir && make && make install

echo "pgsql environment variable"
su - postgres <<EOF
echo 'export PGHOME=/home/postgres/pgsql-14' >> ~/.bash_profile
echo 'export PGDATA=/home/postgres/pgsql-14/data' >> ~/.bash_profile
echo 'export PATH=$PATH:/home/postgres/pgsql-14/bin' >> ~/.bash_profile
echo 'export MANPATH=/home/postgres/pgsql-14/share/man' >> ~/.bash_profile
echo 'export LD_LIBRARY_PATH=/home/postgres/pgsql-14/lib' >> ~/.bash_profile
echo 'export LANG=en_US.UTF8' >> ~/.bash_profile
source ~/.bash_profile
/home/postgres/pgsql-14/bin/initdb -D /home/postgres/pgsql-14/data
cd /home/postgres/pgsql-14/data
/home/postgres/pgsql-14/bin/pg_ctl -D /home/postgres/pgsql-14/data -l logfile start
/home/postgres/pgsql-14/bin/psql -c "ALTER USER postgres WITH PASSWORD 'centos@2023'"
EOF

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

[service]
Type=forking
User=postgres
Environment=PGHOME=/home/postgres/pgsql-14
Environment=PGDATA=/home/postgres/pgsql-14/data
ExecStart=/home/postgres/pgsql-14/bin/pg_ctl start -D /home/postgres/pgsql-14/data
ExecStop=/home/postgres/pgsql-14/bin/pg_ctl stop -D /home/postgres/pgsql-14/data
ExecReload=/home/postgres/pgsql-14/bin/pg_ctl reload -D /home/postgres/pgsql-14/data
Restart=always
TimeoutSec=0

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload && systemctl enable postgresql

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

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

相关文章

现代电商解决方案:Spring Boot框架实践

1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大环境让那些止步不前&#…

unity3d————协程原理讲解

1.协程的本质 协程可以分成两部分1.协程函数本体 2.协程调度器 协程本体就是一个能够中间暂停返回的函数 协程调度器是Unity内部实现的&#xff0c;会在对应的时机帮助我们继续执行协程函数 Unity只实现了协程调度部分协程的本体本质上就是一个 C#的迭代器方法 2.协程本体是…

社区物资交易互助平台(程序+数据库+报告)

基于Spring Boot框架实现的社区物资交易互助平台&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块&#xff0c;主要功能如下。 【前台】&#xff1a; - 首页&#xff1a;展示平台的概览信息和热门内容。 - 论坛&#xff1a;提供一个交流讨论…

学者观察 | 元计算、人工智能和Web 3.0——山东大学教授成秀珍

导语 成秀珍教授提出元计算是在开放的零信任环境下整合算力资源打通数据壁垒构建自进化智能的新质生产力技术&#xff0c;是一种新计算范式&#xff1b;区块链是Web3.0的核心技术之一&#xff0c;有助于保障开放零信任环境下&#xff0c;用户、设备和服务间去中心化数据流通的…

JMeter中添加请求头

在JMeter中添加请求头的步骤如下&#xff1a; 1.打开HTTP信息头管理器 &#xff1a; 首先&#xff0c;你需要进入JMeter的HTTP请求组件。这可以通过在HTTP请求测试元素上右键点击&#xff0c;然后选择“添加 > 配置元件 > HTTP信息头管理器”来完成。 2.添加新的请求头…

ROS Action

在 ROS 中&#xff0c;Action 是一种支持长时间异步任务的通信机制。与 Service 不同&#xff0c;Action 允许客户端发起一个请求&#xff0c;并在任务执行的过程中不断接收反馈&#xff0c;直到任务完成。这种机制非常适用于可能需要较长时间来完成的任务&#xff0c;比如机器…

江苏省考公务员报名照片要求及处理方法

随着江苏省公务员考试的临近&#xff0c;许多考生已经开始准备报名所需的各项材料&#xff0c;其中照片的准备尤为重要。本文将详细介绍江苏省考公务员报名照片的具体要求以及如何使用手机拍照并处理照片&#xff0c;确保您的报名过程顺利进行。 一、江苏省公务员招录考试报名照…

计算机网络学习笔记-3.2介质访问控制

文章目录 介质访问控制静态划分信道 动态分配信道轮询访问介质访问控制随机访问介质访问控制ALOHA协议简介ALOHA协议的工作原理 介质访问控制 介质访问控制&#xff08;MAC&#xff0c;Medium Access Control&#xff09;&#xff0c;质访问控制的目的是确保多个设备能够高效、…

软件测试-巨量测试开发

软件测试-巨量测试 编辑时间&#xff1a;2024/11/13 软件测试基础知识 软件测试定义和测试分类 软件是计算机程序、程序所用的数据以及有关文档资料的集合。 软件测试分类 按测试执行阶段划分 单元测试、集成测试、系统测试、验收测试 是否运行程序划分 动态测试、静态测试…

pycharm中from[本地包]import文件/模块出现问题(最最最全方法!)

1.通过PYTHONPATH的方法在此处将路径添加上&#xff0c;能够让IDE访问得到。 2.通过选中目标文件所在的文件的文件夹单击右键&#xff0c;如下图所示可以看到下方的mark directory as选项中存在 存在excluded&#xff0c;选择此项可解决问题&#xff0c;如果仍有问题可以尝试其…

【日志】Unity——Roll-A-Ball(二)

2024.11.13 【Unity】 3.搭建游戏场景 4.设置可拾取物品 4.1设置可拾取方块 给予一定的变化和颜色 编写方块旋转脚本Rotator.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class Rotator : MonoBehaviour {// Update is cal…

机器学习(1)线性回归

前言   线性回归算法是机器学习深度学习入门的必学的算法&#xff0c;其算法原理虽然简单&#xff0c;但是却蕴含着机器学习中的一些重要的基本思想。许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。同时机器学习深度学习的核心思想就是优…

CSS:导航栏三角箭头

用CSS实现导航流程图的样式。可根据自己的需求进行修改&#xff0c;代码精略的写了一下。 注&#xff1a;场景一和场景二在分辨率比较低的情况下会有一个1px的缝隙不太优雅&#xff0c;自行处理。有个方法是直接在每个外面包一个DIV&#xff0c;用动态样式设置底色。 场景一、…

Redis设计与实现 学习笔记 第十七章 集群

Redis集群是Redis提供的分布式数据库方案&#xff0c;集群通过分片&#xff08;sharding&#xff0c;水平切分&#xff09;来进行数据共享&#xff0c;并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点&#xff08;node&#xff09;组成&#xff0c;在刚开…

(11)(2.1.7) FETtec OneWire ESCs(二)

文章目录 前言 3 组态 4 可选功能 5 SITL模拟 6 故障排除 前言 &#xff01;Note 此功能在固件版本4.1.1及更高版本上可用。 3 组态 FTW掩码 SERVO_FTW_MASK 参数选择将哪些伺服输出&#xff08;如果有的话&#xff09;路由到 FETtec ESC。更改此参数后需要重新启动。…

Python Bokeh 数据可视化教程

Python Bokeh 数据可视化教程 引言 在数据科学和分析的过程中&#xff0c;数据可视化是一个至关重要的环节。它不仅能帮助我们更好地理解数据&#xff0c;还能在报告和展示中提升数据的可读性和吸引力。Python 作为数据科学的主要工具之一&#xff0c;提供了多种数据可视化库…

(免费领源码)java#SSM#mysql高校就业数据可视化管理系统的设计与实现81461-计算机毕设 原创

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对高校就业管理等问题&#xff0c;对高校就业…

wordcloud库基本介绍

文章目录 wordcloud库概述wordcloud库的安装 wordcloud库使用说明配置对象参数 wordcloud应用实例实例: 政府工作报告词云 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术地展示文本 wordcloud库的安装 (cmd命令行) pip install …

替换OpenTSDB和HBase,宝武集团使用IoTDB助力钢铁设备智能运维

时序数据库 IoTDB 应用于宝武集团全基地钢铁时序数据管理&#xff0c;激活数据资产&#xff0c;赋能大型设备智能运维。 1. 背景概述 宝武装备智能科技有限公司&#xff08;以下简称&#xff1a;宝武智维&#xff09;是中国宝武设备智能运维专业化平台公司&#xff0c;30 余年始…

面试_ABtest原理简介

01 什么是ABtest ABtest来源于假设检验&#xff0c;现有两个随机均匀的有样本组A、B&#xff0c;对其中一个组A做出某种改动&#xff0c;实验结束后分析两组用户行为数据&#xff0c;通过显著性检验&#xff0c;判断这个改动对于我们所关注的核心指标是否有显著的影响&#xf…