MySql一键安装shell脚本

#!/bin/bash
#data:20171104
#QQ:654996537
#Name:Zhang
#判断是否是root用户
if [ $(id -u) != "0" ]; then
    echo " Not the root user! Try using sudo Command ! "
    exit 1
fi
#安装依赖包
yum -y groupinstall "Desktop Platform Development"
yum install  -y  gd-devel  libjpeg-devel  libpng-devel  libxml2-devel bzip2-devel libcurl-devel  libmcrypt  libmcrypt-devel  zlib-devel  net-snmp-devel openssl  cmake  ncurses-devel  git  gcc  libevent-devel

#自定义源码包名称
Package_Type=".tar.gz"
Package_Version="mysql-5.6.31"
Install_Package=$Package_Version$Package_Type
Setup_path="/root/"
#自定义用户和用户组
Group_Name="mysql"
User_Name="mysql"
#自定义RPM包
RPM="$User_Name"
#自定义MySql数据库保存路径
#####Mydata="/mydata/{data,bin-log}}"
#mkdir /mydata
#mkdir /mydata/data
#mkdir /mydata/bin-log
mkdir /mydata
mkdir /mydata/{data,bin-log}
DataDir="/mydata/data"
#自定义MySql配置文件路径
MySql_Conf="/etc/mysql"
#自定义MySql安装路径
Install_prefix="/usr/local/mysql"
#判断Rpm包是否安装
function RPM_Install(){
rpm -qa | egrep "$RPM" >>/dev/null
	if [ $? -eq 0 ]
	then
		echo "$RPM is install Yes."
	else 
		echo "$RPM is Not install."
	fi
}
RPM_Install
#判断用户和用户组
Add_Group_User(){
egrep "^$Group_Name" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    echo "mysql 用户组正在添加."
    groupadd $Group_Name
else
    echo " The $Group_Name user group already exists."
    echo "mysql 用户组已经添加."
fi
#判断mysql用户是否存在
egrep "^$User_Name" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    echo "mysql 用户正在添加."
    useradd -g $Group_Name $User_Name
else
    echo "mysql 用户已经添加."
    echo " The $User_Name user already exists."
fi
}
Add_Group_User
#判断源码包文件是否存在
if [ -e $Package_Name ]
then
        echo "$Package_Name The Package exists."
else
        echo "$Package_Name The package does not exist."
fi

#编译安装mysql
cd $Setup_path
tar -zxvf $Install_Package
cd $Package_Version
configure_opts=(
 -DCMAKE_INTALL_PREFIX=$Install_prefix
 -DSYSCONFDIR=$MySql_Conf 
 -DMYSQL_DATADIR=$DataDir
 -DWITH_INNOBASE_STORAGE_ENGINE=1 
 -DWITH_ARCHIVE_STORAAGE_ENGINE=1 
 -DWITH_READLINE=1 
 -DWITH_OPENSSL=system 
 -DWITH_ZLIB=system 
 -DWITH_LIBWRAp=0 
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  
 -DDEFAULT_CHARSET=utf8
 -DDEFAULT_COLLATION=utf8_general_ci
)
cmake . ${configure_opts[@]}
#判断是否编译成功
if [[ $? -eq 0 ]]
then
	make && make install
else
	echo "编译失败,请重新编译" && exit 1
fi
#修改mysql组和数据目录
cd $Install_prefix
chown :mysql ./* -R
chown -R mysql:mysql $DataDir
chown -R mysql:mysql /mydata/bin-log
#初始化数据库
$Install_prefix/scripts/mysql_install_db --user=mysql --datadir=$DataDir
#判断是否初始化成功,目录不为空说明成功,目录为空则失败
if [ "$(ls -A $DataDir)" ]; then
echo "$DataDir is not Empty"
else
echo "$DataDir is Empty"
fi
#提供服务脚本
cp $Install_prefix/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
#提供配置文件
#mv /etc/my.cnf /etc/my.cnf.bak
#mv /etc/my.cnf.d /etc/my.cnf.d.bak
if [ -e /etc/my.cnf ]
then
	echo "File exists."
	mv /etc/my.cnf /etc/my.cnf.bak
else
	echo "File does not exist."
fi

#if [ -e /etc/my.cnf.d ]
#then
#        echo "File exists."
#        mv /etc/my.cnf.d /etc/my.cnf.d.bak
#else
#        echo "File does not exist."
#fi
mkdir $MySql_Conf
cp $Install_prefix/support-files/my-default.cnf  /etc/mysql/my.cnf
sed -i ‘/datadir/a\datadir = /mydata/data‘ /etc/mysql/my.cnf
sed -i ‘/log_bin/a\log_bin = /mydata/bin-log/mysql-bin‘ /etc/mysql/my.cnf
sed -i ‘$ a\innodb_file_per_table = 1‘ /etc/mysql/my.cnf
#修改环境变量
cat >/etc/profile.d/mysql.sh << EOF
export PATH=/usr/local/mysql/bin/:$PATH
EOF
source /etc/profile.d/mysql.sh
source /etc/profile
man -M /usr/local/mysql/man/
#启动MySql服务
#Centos6启动方式
#service mysqld start
#Centos7启动方式
#systemctl start mysqld.service
/etc/rc.d/init.d/mysqld start
#判断MySql是否启动
MySQL_running() {
Startup_file="/etc/rc.d/init.d/mysqld"
#通过查看进程判断是否正常启动
proc=`ps -ef | grep mysql | grep -v grep| wc -l`
#通过监听3306端口进行判断是否启动
port=`netstat -lntup|grep 3306|wc -l`
if [ $proc -eq 2 ] & [ $port -eq 1 ]
   then
        echo "MySQL is running."
		echo "`ss -tnlp | grep mysql`"
else
        echo "MySQL is no running."
#       $Startup_file start

fi
}
MySQL_running
时间: 2024-11-09 18:50:19

MySql一键安装shell脚本的相关文章

一键安装shell脚本

一.一键安装nginx脚本 #!/bin/bash #################################### #Name:nginx_install.sh #Author:doublelinux #version:1.1 #Date:2017/08/19 #################################### yum -y install pcre pcre-devel yum -y install openssl openssl-devel mkdir -p

LNMP一键安装shell脚本(v1.2)

鉴于搭建一个LNMP环境使用一步一步的方法安装比较笨拙,故将安装步骤编写成一个简单shell脚本,并且能实现大部分需求 适合的系统版本:CentOS6.5-6.7 64位 安装的前提准备: mysql-5.6.28.tar.gz cmake-3.4.3.tar.gz nginx-1.8.1.tar.gz libgd-2.1.1.tar.bz2 ibiconv-1.14.tar.gz jpegsrc.v6b.tar.gz php-5.6.20.tar.bz2 将以上的源码包download下来放并

LNMP一键安装shell脚本

前段时间维护服务器,需要安装LNMP环境,所以就整理了一下,做为脚本,记录下来. #!/bin/sh #Copyright(c) 2010-2015 redapple ([email protected]) #install LNMP  #Version 0.1.1 #Date 20140813 #------------增加yum源------------------------ rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmfo

Centos Denyhosts 一键安装配置脚本

一键安装denyhosts脚本并配置为常用配置.放置Linux服务器被暴力破解 由于不能上传tar文件.所以改为zip压缩. 将附件的zip压缩包解压后将整个文件夹上传到服务器. 然后进入denyhost文件夹 赋予脚本执行权限. chmod 700 denyhosts.sh ./ denyhosts.sh 脚本内容是: denyhosts.sh #!/bin/bash   # Copyright (c) 2015.6  Fenei # BY:封飞 # 2015年6月29日23点 # denyh

MySQL主从复制监控shell脚本

########本脚本应用在生产环境中,是运用mysql主从的基础上######## vi mysqlm-s.sh   #!/bin/bash  ip=`ifconfig eth0|sed -n 2p|awk  '{ print $2 }'|awk -F : '{ print $2 }'`  port=`netstat -anl|grep 3306 |sed -n '1p' |awk '{print $4}'|awk -F: '{ print $2}'`  array=($(mysql -uUS

Linux下定时备份MySQL数据库的Shell脚本

Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参考了网上的很多教程,外加自己的测试,以下脚本经测试可用.#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab#Author :

一键安装lamp脚本--初级版

#!/bin/bash #write by zhang_pc #at 2015.07.21 #apache2.2.27 mysql5.1 php5.4 #安装说明,由于网速原因,就不下载了,执行脚本前要把源码上传到脚本相同的目录下 echo -e "\033[32m this is a lamp 一键安装script\033[0m" echo -e "\033[32m 第一步安装apache \033[0m" echo -e "\033[32m 第二步安装

实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir /usr/local/java cd /usr/local/java #download jdk 1.7.67 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co

Linux下自动还原MySQL数据库的Shell脚本

创建shell脚本topjui_source.exp,内容如下: #!/usr/bin/expect spawn echo "###### running... ######" spawn echo $argv0 spawn echo $argv1 set timeout 30 spawn mysql -uroot -p123456 set timeout 30 expect { "hi" { send "You said hi\n"} &quo