直接贴出来:

#!/bin/bash
#linux安装mysql服务分两种安装方法:
#①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错;
#②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右
MYSQL_PACKET="/home/tools"
MYSQL_REPO="5.6"
MYSQL_VERSION="5.6.34"
MYSQL_BASEDIR="/usr/local/mysql"
MYSQL_DATADIR="/home/sqldata/mysql"
MYSQL_SOCKET="/tmp/mysql.sock"
YELLOW_COLOR='\E[1;33m'
RED_COLOR='\E[1;31m'
RES='\E[0m'
function yellow(){
[ $# -ne ] && exit
echo -e "${YELLOW_COLOR}$1${RES}"
}
function red(){
[ $# -ne ] && exit
echo -e "${RED_COLOR}$1${RES}"
}
function BAR(){
i=
str=""
arry=("\\" "|" "/" "-")
while [ $i -le ]
do
let index=i%
if [ $i -le ];then
let color=
let bg=
elif [ $i -le ];then
let color=
let bg=
elif [ $i -le ];then
let color=
let bg=
else
let color=
let bg=
fi
printf " \033[${color};${bg}m%-s\033[0m %d %c\r" "$str" "$i" "${arry[$index]}"
usleep
let i=i+
str+="#"
done
printf "\n"
}
#Check if user is root
function check_user(){
if [ $UID != ];then
echo -e "\033[31m Error: You must be root to run this script, please use root to install\033[0m"
exit
fi
clear
cat <<EOF
---------------------------------------------------------------------------------------------------
|***************A script to auto-compile & install `yellow mysql-${MYSQL_VERSION}` on Redhat/CentOS Linux***************|
--------------------------------------------------------------------------------------------------- EOF
}
function check_env(){
Distrib="${MYSQL_VERSION}"
status1="`mysql --version |awk -F '[ ,]' '{print $6}'`"
if [ "$status1" = "$Distrib" ];then
echo -e "\033[32m Warning: mysql-${MYSQL_VERSION} is already installed! \033[0m"
sleep ;
BAR
echo -e "\033[31m [退出] \033[0m"
exit
else
echo -e "\033[32m Warning: mysql-${MYSQL_VERSION} is not install \033[0m"
echo -e "\033[34m Install mysql-${MYSQL_VERSION},Please input y \033[0m"
read -p "(Please input `yellow y`|`red n`): " installmysql
case "$installmysql" in
y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)
echo -e "\033[34m You will install mysql-${MYSQL_VERSION} \033[0m"
installmysql
;;
n|N)
echo -e "\033[31m [退出] \033[0m"
exit
;;
*)
echo -e "\033[31m INPUT error,You will exit install mysql-${MYSQL_VERSION} \033[0m"
exit
esac
fi
}
function installmysql(){
[ ! -d ${MYSQL_PACKET} ] && mkdir -p ${MYSQL_PACKET}
[ ! -d ${MYSQL_BASEDIR} ] && mkdir -p ${MYSQL_BASEDIR}
[ ! -d ${MYSQL_DATADIR} ] && mkdir -p ${MYSQL_DATADIR}
if [ ! -f ${MYSQL_PACKET}/mysql-${MYSQL_VERSION}.tar.gz ] ;then
echo -e "\033[31m There is without ${MYSQL_PACKET}/mysql-${MYSQL_VERSION}.tar.gz ! \033[0m"
sleep ;
echo -e "\033[32m mysql-${MYSQL_VERSION}.tar.gz is downloading...... \033[0m"
cd ${MYSQL_PACKET} &&\
[ -f mysql-${MYSQL_VERSION} ] || wget http://downloads.mysql.com/archives/mysql-${MYSQL_REPO}/mysql-${MYSQL_VERSION}.tar.gz
#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
sleep ;
echo -e "\033[32m Installing mysql-${MYSQL_VERSION},please waiting...... \033[0m"
start_install
else
echo -e "\033[32m Installing mysql-${MYSQL_VERSION},please waiting...... \033[0m"
start_install
fi
} function start_install(){
# 补充部分 Install base tools & packages & library
if [ ! -f epel-release--.noarch.rpm ] ;then
# wget -c http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release--.noarch.rpm
fi
for i in $(rpm -q glibc glibc-static glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libaio readline-devel curl curl-devel libidn libidn-devel autoconf libjpeg libjpeg_devel libpng libpng_devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel gcc gcc-c++ lrzsz ntpdate nmap.x86_64 lsof.x86_64 sysstat.x86_64 glances kernel-devel openssl openssl-devel popt-devel popt-static libnl-devel libicu-devel libevent-devel tree nc make cmake jemalloc pcre pcre-devel pcre-static libzip.x86_64 libzip-devel.x86_64 libevent-devel libool libool-ltdl gd-devel bison vim-enhanced zip unzip patch expect|awk '/not install/ {print $2}')
do
yum -y install $i >/dev/null >&
done
id mysql >/dev/null
[ $? -eq ] && usermod -s /sbin/nologin mysql &>/dev/null || useradd -s /sbin/nologin -M mysql >/dev/null
cd ${MYSQL_PACKET} &&\
tar xf mysql-${MYSQL_VERSION}.tar.gz
cd mysql-${MYSQL_VERSION}
cmake . -DCMAKE_INSTALL_PREFIX=${MYSQL_BASEDIR} \
-DMYSQL_DATADIR=${MYSQL_DATADIR} \
-DMYSQL_UNIX_ADDR=${MYSQL_SOCKET} \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_FEDERATED_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE= \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE= \
-DWITH_EMBEDDED_SERVER= \
-DENABLE_DOWNLOADS= \
-DWITH_DEBUG=
sleep ;
make && make install
if [ $? -eq ];then
echo -e "\033[32m mysql-${MYSQL_VERSION} is making successful! \033[0m"
else
echo -e "\033[31m mysql-${MYSQL_VERSION} is making of failure! \033[0m"
exit
fi
#ln -s /usr/local/mysql-5.6./ /usr/local/mysql
\cp support-files/my*.cnf /etc/my.cnf
#初始化和配置数据库
${MYSQL_BASEDIR}/scripts/mysql_install_db --basedir=${MYSQL_BASEDIR} --datadir=${MYSQL_DATADIR} --user=mysql
chown -R mysql.mysql ${MYSQL_BASEDIR}/
\cp support-files/mysql.server /etc/init.d/mysqld
chmod /etc/init.d/mysqld
chkconfig mysqld on && /etc/init.d/mysqld start
grep "/usr/local/mysql/bin/" /etc/profile >/dev/null
if [ $? -ne ];then
echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile && source /etc/profile
else
exit
fi
PID="`netstat -lnpt|grep 330|awk -F '[ /]+' '{print $7}'`"
if [ -z $PID ];then
echo -e "\033[31m mysql-${MYSQL_VERSION} is start failure! \033[0m"
else
BAR
echo -e "\033[32m mysql-${MYSQL_VERSION} is start successful! \033[0m"
fi }
check_user
check_env

mysql5.x安装脚本的更多相关文章

  1. MySQL5.7安装脚本

    目录结构: install_mysql.sh:安装脚本 my.cnf: MySQL配置文件 mysql--linux-glibc2.-x86_64.tar.gz:MySQL二进制包 以下为目录中的文件 ...

  2. 实战-Mysql5.6.36脚本编译安装及初始化

    概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本. 安装脚本install.py如下: #coding=utf-8 #!/usr/bin/p ...

  3. mysql5.7一键安装脚本

    0. 概述 最近鼓捣出了一个mysql安装脚本,将该脚本,mysql的my.cnf文件,mysql的安装包这三个文件放在同一个目录下面,执行sh mysql-auto-install.sh就可以完成m ...

  4. mysql5.6安装

    mysql5.6安装 #卸载原有的mysqlyum remove mysql*ls /etc/my.cnf*mv /etc/my.cnf* /tmp/ #安装依赖包yum install make c ...

  5. LAMP最新源码一键安装脚本

    Linux+Apache+MySQL+PHP (脚本可以选择是否安装+Pureftpd+User manager for PureFTPd+phpMyAdmin+memcache),添加虚拟主机请执行 ...

  6. LNMP、LAMP、LANMP一键安装脚本(定期更新)[转]

    这个脚本是使用shell编写,为了快速在生产环境上部署LNMP/LAMP/LANMP(Linux.Nginx/Tengine.MySQL/MariaDB/Percona.PHP),适用于CentOS/ ...

  7. 自动安装脚本-------------基于LVMP搭建Nagios 监控

    Mysql初始化参数(mysql-5.6.31) /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local ...

  8. MySQL安装脚本0104-亲试ok

    #!/bin/bash export host_ip=192.168.7.79 export password=123456   echo '#1.取master主机ip的后三位作为master的se ...

  9. Linux下安装mysql(示例mysql5.6安装)

    1.首先检查你的linux上是否已经安装了mysql rpm -qa|grep mysql 2.如果mysql的版本不是想要的版本.需要把mysql卸载 yum remove mysql mysql- ...

随机推荐

  1. 对ES6的yield示例分析

    近期ES6标准如火如荼的发展,其中主要还是各大浏览器的支持,最重要厂商支付宝,微信的支持,使得国内的发展也很迅猛. 这里主要是对yield关键字的,yield实际上可以看作是一种新的中断机制,大家都知 ...

  2. MUI版本升级更新程序IOS和andriod

    var wgtVer=null; function plusReady(){ // 获取本地应用资源版本号 plus.runtime.getProperty(plus.runtime.appid,fu ...

  3. BAT面试题:请使用递归构建N叉树

    题目要求: 现在我们拥有全国的省.市.县.镇的行政信息,比如 浙江省 -> 杭州市 -> 西湖区 --> xx街道,请将这些信息构建成一棵树,根节点为全国,叶子节点为镇. 我的误解: ...

  4. input type=file的几个属性

    <input type='file' /> inputDom.onchange=function (e){ e.currentTarget.files  是只有一个对象的数组 var ob ...

  5. linux查看目录下各个文件大小的命令

    linux查看目录下各个文件大小的命令 由于需要经常查看各个文件的具体大小 ,所以这里记一下. 命令如下: du -h --max-depth=1

  6. 项目总结-timerTask的使用

    关于使用timerTask来进行定时任务的研究 业务说明:每天的0点执行一次 调用说明:com.hzmd.itest.db.ItestDbUtil中的startPermitTimer()方法进行最终的 ...

  7. Linux centos yum仓库 自制

    内网下Yum仓库搭建配置 1.实验环境 虚拟机环境: VMware 12 版本虚拟机 网络环境: 内网 IP 段:172.16.1.0 外网 iP 段(模拟):10.0.0.0 实验基础:(能够上网, ...

  8. CSS中字距,词距,首行缩进,字体大小,排版相关问题的探讨

    先说明下,这是在谷歌浏览器下字体显示等问题做个研究,火狐下有点差异,不过火狐占有率低,而且显示的没有谷歌那么合理,不管它先.IE卡的要死,半死不活,也懒得深入研究这些细节,字体排版上不是强迫症,差别也 ...

  9. Virtual DOM 系列三:Diff算法

    DOM操作是昂贵的,为了减少DOM操作,才有了Virtual DOM.而Virtual DOM的关键就是通过对比新旧vnode,找出差异部分来更新节点.对比的关键算法就是Diff算法. 历史由来: d ...

  10. CodeForces 1151D Stas and the Queue at the Buffet

    题目链接:http://codeforces.com/contest/1151/problem/D 题目大意: 有n个学生排成一队(序号从1到n),每个学生有2个评定标准(a, b),设每个学生的位置 ...