设为首页 收藏本站
查看: 871|回复: 0

[经验分享] Centos7编译安装mysql脚本

[复制链接]

尚未签到

发表于 2018-10-10 06:27:11 | 显示全部楼层 |阅读模式
#!/bin/bash  
# mysqld install scripts
  
# display Progress
  
Progress () {
  
    b=''
  
    i=0
  
    while [ $i -le  100 ]
  
    do
  
        printf "$*:[ %-50s ]%d%%\r" $b $i
  
        sleep 0.001
  
        i=`expr 2 + $i`
  
        b=#$b
  
    done
  
    echo
  
}
  

  
# if Centos Version
  
Centos_version=$(cat /etc/redhat-release|awk '{print $4}'|cut -b1)
  
wget -o /dev/null -O /etc/yum.repos.d/Centos-Base.repo /http://mirrors.aliyun.com/repo/Centos-${Centos_version}.repo
  
yum makecache
  
Progress Centos Download
  
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config;iptables -F
  
setenforce 0
  
rpm -e --nodeps mysql*
  

  
CPU_NUMBERS=`cat /proc/cpuinfo|grep processor|wc -l`
  
COMPUTER_MEM=`free -m|grep Mem|awk '{print $2}'`
  
MYSQL_MEM=`expr $COMPUTER_MEM - $COMPUTER_MEM / 4`
  
COLOR_GREEN="\033[32m"
  
COLOR_RED="\033[31m"
  
COLOR_BULE="\033[34m"
  
COLOR_YELLOW="\033[33m"
  
COLOR_PURPLE="\033[35m"
  
COLOR_END="\033[0m"
  
sleep 0.05;echo "==================================================";echo;echo
  
sleep 0.05;echo -e "Mysql 5.7.16 on $COLOR_GREEN Centos7_`uname -m` $COLOR_END"
  
sleep 0.05;echo -e "Your computer is $COLOR_GREEN $CPU_NUMBERS $COLOR_END processes,Mysql Memory is ${COLOR_GREEN}${MYSQL_MEM}M${COLOR_END}"
  
sleep 0.05;echo -e "${COLOR_RED}Your will input mysql's root password and mysql's memory${COLOR_END}";echo;echo
  
sleep 0.05;echo "=================================================="
  

  
# are you sure install
  
read -n1 -t30 -p "Are you sure setup[y/n]?: " answer
  
case $answer in
  
    "y" | "Y" )
  
        echo;echo "Start setup.....";sleep 2;;
  
    "n" | "N" )
  
        echo;echo -e "${COLOR_RED}Cancel setup......${COLOR_END}"
  
        exit 0 ;;
  
    "")
  
        echo;echo -e "${COLOR_PURPLE}Over time!!!!!${COLOR_END}"
  
        exit 0 ;;
  
    *)
  
        echo;echo -e "${COLOR_RED}Error input parameter......${COLOR_END}"
  
       exit 1 ;;
  
esac
  

  
# check if user is root
  
if [ $(id -u) != "0" ];then
  
    echo "$COLOR_RED Sorry:You must be root to run this script!${COLOR_END}"
  
    exit 1
  
fi
  

  
# useradd mysql
  
GROUP_NAME=mysql
  
USER_NAME=mysql
  
if [ -z $(cat /etc/passwd|awk -F: "{print $1}"|grep -w "$USER_NAME") -a -z $(cat /etc/group|awk -F: "{print $1}"|grep -w "$GROUP_NAME") ]
  
then
  
    useradd -s /sbin/nologin -M -U $USER_NAME 2> /dev/null
  
    if (( $? == "0" ))
  
    then
  
        echo -e  "$COLOR_GREEN group $GROUP_NAME add sucessfully!${COLOR_END}"
  
    fi
  
    else
  
        echo -e "${COLOR_PURPLE}User $USER_NAME is exsits! ${COLOR_END}"
  
fi
  

  
for i in make gcc gcc-c++ bison-devel ncurses-devel perl perl-devel wget
  
do
  
    yum -y -q install $i > /dev/null
  
    echo -e "${COLOR_PURPLE}$i ${COLOR_GREEN}Install ok${COLOR_END}"
  
done
  

  
# download cmake >= 2.8
  
CMAKE_VERSION=cmake-3.4.3
  
rm -rf /tmp/cmake*
  
if [ -z $(which cmake) ]
  
then
  
    wget -c --no-check-certificate -q https://cmake.org/files/v3.4/${CMAKE_VERSION}.tar.gz -P /tmp
  
    if [ $? == "0" ]
  
    then
  
        Progress Cmake Download
  
        echo -e "${COLOR_GREEN}Cmake Download sucessfully!${COLOR_END}"
  
    else
  
        echo -e "${COLOR_RED}Cmake Download failed!${COLOR_END}"
  
        exit 0
  
    fi
  
    tar -zxf /tmp/${CMAKE_VERSION}.tar.gz -C /tmp/ > /dev/null
  
    cd /tmp/${CMAKE_VERSION}
  
    ./bootstrap > /dev/null
  
    make && make install
  
    echo $?
  
else
  
    echo -e "${COLOR_PURPLE}Cmake is exsits ${COLOR_END}"
  
fi
  

  
# download boost_1.61
  
BOOST_VERSION=1.61.0
  
BOOST_VER="boost_1_61_0"
  
for i in bzip2 gcc bzip2-devel bzip2-libs python-devel perl-Data-Dumper
  
do
  
    yum install -q -y $i > /dev/null
  
    echo -e "${COLOR_PURPLE}$i ${COLOR_GREEN}install OK${COLOR_END}"
  
done
  

  
wget -c --no-check-certificate -q https://nchc.dl.sourceforge.net/project/boost/boost/${BOOST_VERSION}/${BOOST_VER}.tar.bz2 -P /tmp
  
if [ $? == "0" ]
  
then
  
    Progress Boost Download
  
    echo -e "${COLOR_GREEN}Boost Download sucessfully!${COLOR_END}"
  
    echo -e "${COLOR_GREEN}Decompression ${BOOST_VER}.tar.bz2${COLOR_END}"
  
    cd /tmp;tar -jxf ${BOOST_VER}.tar.bz2
  
    cd ${BOOST_VER}
  
    echo `pwd`
  
    ./bootstrap.sh 2> /dev/null
  
    ./b2 install   2> /dev/null
  
else
  
    echo -e "${COLOR_RED}Boost Download failed!${COLOR_END}"
  
    exit 0
  
fi
  

  
# Download mysql
  
rm -rf /tmp/mysql-5.*
  
MYSQL_VERSION=5.6.35
  
wget -c http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-${MYSQL_VERSION}.tar.gz -P /tmp
  

  
if [ $? == "0" ]
  
then
  
    echo -e "${COLOR_PURPLE}Mysql ${MYSQL_VERSION}${COLOR_GRENN}Download sucessfully!${COLOR_END}"
  
else
  
    echo -e "${COLOR_PURPLE}Mysql ${MYSQL_VERSION}${COLOR_RED}Download failed!${COLOR_END}"
  
fi
  

  
cd /tmp/
  
tar -zxf /tmp/mysql-${MYSQL_VERSION}.tar.gz
  
cd mysql-${MYSQL_VERSION}
  

  
if [ -f /etc/my.cnf ]
  
then
  
    mv /etc/my.cnf /etc/my.cnf__$(date +%Y%m%d).bak
  
fi
  

  
echo "======================================================"
  
echo -e "Please input the root password of mysql: "
  
read -p "(Default password:root):" MYSQL_PASSWD
  
if [ $mysqlrootpw == "" ];then
  
    MYSQL_PASSWD="root"
  
fi
  
echo "Mysql root's password is ${mysqlrootpw}"
  

  
echo -e "${COLOR_PURPLE}Please input Mysql Basedir: ${COLOR_END}"
  
read -p "(Default Mysql Basedir:/usr/local/mysql/)" MYSQL_HOME
  
if [ -z $MYSQL_HOME ];then
  
    MYSQL_HOME="/usr/local/mysql"
  
fi
  
read -p "(Default Mysql Datadir:/usr/local/mysql/data)" MYSQLDB_HOME
  
if [ -z $MYSQLDB_HOME ];then
  
    MYSQLDB_HOME="/usr/local/mysql/data"
  
fi
  

  
echo "======================================================="
  

  
cmake \
  
-DCMAKE_INSTALL_PREFIX=${MYSQL_HOME}-${MYSQL_VERSION} \
  
-DMYSQL_DATADIR=${MYSQLDB_HOME} \
  
-DSYSCONFDIR=/etc \
  
-DWITH_BOOST=/usr/local/include/boost \
  
-DWITH_MYISAM_STORAGE_ENGINE=1 \
  
-DMYSQL_TCP_PORT=3306 \
  
-DDEFAULT_CHARSET=utf8 \
  
-DMYSQL_USER=mysql \
  
-DEXTRA_CHARSETS=all \
  
-DENABLED_LOCAL_INFILE=1 \
  
-DDEFAULT_COLLATION=utf8_general_ci
  

  
make -j${CPU_NUMBERS} && make install
  

  
ln -s ${MYSQL_HOME}-${MYSQL_VERSION} ${MYSQL_HOME}
  
cp ${MYSQL_HOME}/support-files/my-default.cnf /etc/my.cnf
  

  
mkdir -p ${MYSQLDB_HOME}/log
  
chown -R mysql:mysql ${MYSQL_HOME}
  
chown -R mysql:mysql ${MYSQLDB_HOME}
  

  
cd ${MYSQL_HOME};chmod +x ./scripts/mysql_install_db
  
${MYSQL_HOME}/scripts/mysql_install_db --user=mysql --basedir=${MYSQL_HOME} --datadir=${MYSQLDB_HOME}
  

  
cat >> /etc/profile

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-619664-1-1.html 上篇帖子: 赶集网mysql开发36军规 下篇帖子: CentOS6.8手动安装MySQL5.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表