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

 #!/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. 【原】nginx配置文件

    一:下载nginx方式 1.yum install nginx 2.源码安装 二:学习网址 nginx documentation — DevDocs 三:配置文件信息 server { listen ...

  2. RHEL6配置CentOS yum源

    RHEL6配置CentOS yum源

  3. MyEclipse JSP页面中文字符不能保存

      问题: 就是写HTML+JSP代码时有些中文,保存时提示sava could not be completed. Reason: some characters cannot be mapped ...

  4. 基于Phoenix对HBase建索引

    参考: Phoenix与HBase集成进行数据分析 HBase查询速度慢原因排查 操作1,执行查询,如下: : jdbc:phoenix:node3::/hbase> SELECT * FROM ...

  5. Spark教程——(5)PySpark入门

    启动PySpark: [root@node1 ~]# pyspark Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 ...

  6. vmware workstation导入ovf文件报错:未通过OVF规范一致性或虚拟硬件合规性检查

    转自:https://blog.csdn.net/zs15yy/article/details/73793585 报错如下: 原因:这是因为OVF 版本不同导致的,VMware Workstation ...

  7. RabbitMq学习笔记——RabbitMQ C的使用

    1.需要用到的参数: 主机名:hostname.端口号:port.交换器:exchange.路由key:routingkey .绑定路由:bindingkey.用户名:user.密码:psw,默认用户 ...

  8. java#tostring

    通常使用apache-commons 来生成tostring方法,但是对于类型为java.util.Date的字段打印效果并不是我们想要的. @Override public String toStr ...

  9. JDBC--DBUtils的使用

    1.commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性 ...

  10. 多实例mysql的安装和管理

    多实例mysql的安装和管理 http://blog.chinaunix.net/uid-20639775-id-3438560.html mysql的多实例有两种方式可以实现,两种方式各有利弊.第一 ...