本文提供数据库安装脚本,有部分需要优化,就是脚本中的方法执行存在前后依赖,但是代码里面没有对上一个执行结果进行判断,如果提供的路径和安装包没有问题,脚本能够正常执行

 #!/bin/bash
# install postgre
# base_path=$(cd $(dirname ${BASH_SOURCE[]}); pwd )
base_path="/opt"
# Pg database installation package name
pg_name="./postgresql-9.6.15-1-linux-x64-binaries.tar.gz"
# Pg database installation path
pg_deploy_path="$base_path/postgreSQL"
# Directory of data stored in the pg database
pg_data_path="${pg_deploy_path}/data"
# Directory of data stored in the pg database
user_name='pguser' # unzip pg
function pg_untar(){
if [ -d ${pg_deploy_path} ];then
echo "pg has been installed"
else
if [ ! -e ${pg_name} ];then
echo "Missing pg installation package"
else
mkdir -p ${pg_deploy_path}
tar -zxf ${pg_name} -C ${pg_deploy_path}
fi
fi
} # Create a Linux user to log in to the PG database
function pg_create_user(){
# user_exist=`cat /etc/passwd | grep '^${user_name}:' -c`
egrep "^${user_name}" /etc/passwd >/dev/null
if [ $? -eq ]; then
pass=$(perl -e 'print crypt($ARGV[0], "password")' $user_name)
useradd -m -p $pass ${user_name}
#useradd -m -p 'postgres' ${user_name}
[ $? -eq ] && echo "user [${user_name}] has been added to system!" || echo "Failed to add user [${user_name}]"
else
echo "user [${user_name}] exists"
fi
} #init pg
function pg_init(){
#Create a data directory
mkdir -p ${pg_data_path}
touch ${pg_deploy_path}/logfile
#Grant user access
chown -R ${user_name} ${pg_data_path}
chown ${user_name} ${pg_deploy_path}/logfile # init database
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/initdb -D ${pg_data_path}"
} #Modify config of the pg database
#
function pg_modify_config(){
id_path=${pg_data_path}/postgresql.conf
local_path=${pg_data_path}/pg_hba.conf
localip=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
if [ -d ${pg_data_path} ];then
chown -R 'root' ${pg_data_path}
#Modify listening ip
sed -i "s@#listen_addresses = 'localhost'@listen_addresses = \'${localip}\'@g" $id_path
#Modify Trust client ip
#sed -i "s@#listen_addresses = 'localhost'@listen_addresses = \'${localip}\'@g" $id_path
sed '86 ahost all all 0.0.0.0/0 trust' -i $local_path
chown -R ${user_name} ${pg_data_path}
else
echo "You need to initialize the database with the command:\n\t ${pg_deploy_path}/pgsql/bin/initdb -D ${pg_data_path} "
fi
} # start pg database
function pg_start(){
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/pg_ctl -D ${pg_data_path} -l ${pg_deploy_path}/logfile start"
}
# create default database bms_ops
function pg_createdb(){
sleep 3s
default_db="bms_ops"
su - ${user_name} -c "${pg_deploy_path}/pgsql/bin/createdb -O ${user_name} ${default_db}"
}
#Open port
function pg_open_port(){
isopen=$(firewall-cmd --query-port=/tcp)
if [ 'no' == $isopen ];then
firewall-cmd --add-port=/tcp --permanent>/dev/null
firewall-cmd --reload>/dev/null
else
echo "port 5432 already opened"
fi } echo "============== start install pg =============="
if [ -d ${pg_deploy_path} ];then
echo "pg has been installed"
else
pg_untar
pg_create_user
pg_init
pg_modify_config
pg_start
pg_createdb
pg_open_port
fi
echo "============== finish installing pg =============="

linux安装postgresql数据库的更多相关文章

  1. Linux 安装 PostgreSQL

    Linux 安装 PostgreSQL CentOS 7 安装 PostgreSQL 10 步骤 官网安装步骤,选择服务器和数据库版本,会给出相应的安装命令 # 安装 yum install -y h ...

  2. Windows Azure上的Odoo(OpenERP)-1.创建Ubuntu虚拟机,安装PostgreSQL 数据库

    前提是您必须拥有Windows Azure的账号,如果没有的话,可以去Windows Azure 中国区网站申请免费试用账号.哈哈,我就是第一批申请的试用账号,感觉自己挺幸运的.申请的过程就不写了,请 ...

  3. Windows安装PostgreSQL数据库 无法初始化数据库问题

    背景 由于项目的需要,使用PostgreSQL数据库,因此在Windows上安装PostgreSQL数据库.但是在安装后,无法访问本地数据库,这个时候查看/data目录,没有任何文件.而且安装过程中, ...

  4. linux下PostgreSQL数据库的源码安装

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  5. [zz]安装PostgreSQL数据库(Linux篇)

    0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgres ...

  6. 安装PostgreSQL数据库(Linux篇)

    0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgres ...

  7. [亲测有效] - Linux安装PostgreSQL

    本文章来为各位介绍一篇关于postgresql 9.4 在linux环境的安装步骤详解,希望文章能够对各位新手朋友带来帮助的哦.   环境说明系统:centos 6.4 64位软件:postgresq ...

  8. linux安装postgresql

    第一步在编译安装postgresql源码的时候,需要用到以下依赖,若本机没有的话,需要提前安装依赖环境,执行以下命令:yum install gcc gcc-c++yum install zlib-d ...

  9. 国产龙芯服务器源码安装PostgreSQL数据库的方法

    1. 公司最近有一些国产化项目的需求, 要求在国产CPU的服务器上面安装pg数据库等. 2.. 但是差查了下中标麒麟的官网,在龙芯MIPS的操作系统包源里面仅有 postgreSQL 9.2 版本的r ...

随机推荐

  1. Android studio For Mac 安装

    简介: Google在2013的I/O开发者大会上正式对外宣布Android Studio将作为Android开发的主要IDE,它是基于IntelliJ IDEA打造的一款专门开发Android的神器 ...

  2. Hexo引入Mermaid流程图和MathJax数学公式

    近来用Markdown写文章,越来越不喜欢插入图片了,一切能用语法解决的问题坚决不放图,原因有二: 如果把流程图和数学公式都以图片方式放到文章内,当部署到Github上后,访问博客时图片加载实在太慢, ...

  3. Maven项目-jar包冲突:MyServlet is not a Servlet解决方法

    异常显示:运行时jar包冲突异常 问题所在: jar包冲突,自己导入的jar包与tomcat中的jar包相同. 解决方法: 对(servlet,jsp)jar包设置作用域. 再次启动项目,问题已解决.

  4. SpringCloud+Eureka+Feign+Ribbon的简化搭建流程,加入熔断,网关和Redis缓存[2]

    目录 前提:本篇是基于 SpringCloud+Eureka+Feign+Ribbon的简化搭建流程和CRUD练习[1] 的修改与拓展 1.修改consumer的CenterFeign.java,把返 ...

  5. 应用内打开AppStore上某个应用的下载界面--SKStoreReviewController的使用

    产品设计要求是这样的: 对应的初步代码是这样的: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after ...

  6. C. Book Reading 求在[1,n]中的数中,能整除m的数 的个位的和

    C. Book Reading time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  7. shell脚本中执行sql脚本(mysql为例)

    1.sql脚本(t.sql) insert into test.t value ("LH",88); 2.shell脚本(a.sh     为方便说明,a.sh与t.sql在同一目 ...

  8. 检测皮肤PH值、感知你的便意,健康是可穿戴设备的新风口?

    在经历最初的喧嚣与疯狂后,可穿戴设备近年来有些低调和沉寂.换句话说,虽然可穿戴设备销量在持续走高,但从形态和功能上,呈现出高度一致性.这似乎也在证明着,可穿戴设备已成为寻常可见的普通产品而已.不过在迈 ...

  9. CH12 动态内存

    动态分配的对象的生命期与它们在哪里创建的五官,只有显示地释放时,这些对象才被销毁 静态内存用来保存局部static对象.类static数据成员以及定义在任何函数之外的变量,栈内存用来保存定义在函数内的 ...

  10. window进行缩放时左侧菜单高度随之变化

    window.onresize = function(){ $(); }