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

 #!/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. Spring学习(五)

    自动装备 1.定义 自动装配(autowiring): 将某个Bean实例中所引用的其它的Bean自动注入到当前Bean实例中 自动装配就是指由Spring来自动地注入依赖对象,无需人工参与. 自动装 ...

  2. 吴裕雄--天生自然ORACLE数据库学习笔记:SQL语言基础

    select empno,ename,sal from scott.emp; SELECT empno,ename,sal FROM scott.emp; selECT empno,ename,sal ...

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:在 <tbody> 内的任一行启用鼠标悬停状态

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. FiBiNET-学习

    Our main contributions are listed as follows: • Inspired by the success of SENET in the computer vis ...

  5. 第1节 Scala基础语法:3、环境;4、插件

    1.    Scala编译器安装 1.1.   安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 1.2.   安装Scala 1.2.1.    Windows ...

  6. JS原型与原型链继承的理解

    一.原型 先从构造函数开始吧! 构造函数是什么?构造函数与其他函数唯一的区别在于调用方式不同.任何函数只要通过new来调用就可以作为构造函数,它是用来创建特定类型的对象. 下面定义一个构造函数 Fem ...

  7. Session 'app': Error Installing APKs app 在手机或虚拟机上调试报错

    解决方案: build --clean project

  8. Java8 HashMap详解

    Java8 HashMap Java8 对 HashMap 进行了一些修改,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成. 根据 Java7 HashMap 的介绍,我们知道,查找的 ...

  9. 本机连接虚拟机中docker启动的mysql数据库

    首先要保证本机能访问虚拟机的网络 并且虚拟机开通了mysql的访问端口 进入容器 docker exec -it 容器id /bin/bash 进入mysql数据库开启远程访问权限 mysql -ur ...

  10. Windows下ARP协议的工作原理简介

       ARP协议(Address Resolve Protocol,地址解析协议)工作在TCP/IP协议的第二层-数据链路层,用于将IP地址转换为网络接口的硬件地址(媒体访问控制地址,即MAC地址). ...