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

[经验分享] mysql最新通用二进制分发版本5.7.16自动安装shell脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-14 09:39:37 | 显示全部楼层 |阅读模式
#!/bin/bash
#Function:用于安装mysql-5.7.16二进制分发版本,脚本共有2个文件,一个脚本执行文件installMysql.sh,
#另一个mysql配置文件:my.cnf,注意要将该配置文件放置于/data目录下
#使用该脚本安装mysql需要能连接外网以便能从mysql官网下载mysql二进制安装包
#或者将事先下载好的安装包放置于/data/mysqlSoftware目录下,将download mysql部分代码注释掉即可
#Date:2016/10/8
#Author:Jian
#Company:Jian
#Version:1.0
#Usage:bash installMysql.sh

#mysql install function
installMysql() {
#约定的相关目录和文件设置
local configFile=/data/my.cnf            #mysql的配置文件my.cnf
local downloadDir=/data/mysqlSoftware   #安装文件下载目录
local installDir=/usr/local            #mysql目录安装位置
local databaseDir=/data/mysql/data    #数据库保存位置
local logDir=/data/mysql/log         #日志保存位置
local tmpDir=/data/mysql/tmp         #tmp目录位置
local bit=$(getconf LONG_BIT)        #本系统是32还是64位?
local mypasswd="123456"              #设置mysql密码
local oldPath=$(grep -v "#" ~/.bashrc | gawk '$0 ~ /(PATH=)/{print $0}')
local newPath="export PATH=$installDir/mysql/bin:$PATH"
#mysql-community-server-5.7.16-x86_64
local url1="http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz"
#mysql-community-server-5.7.16-x86_32
local url2="http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-i686.tar.gz"
mkdir -p $logDir
mkdir -p $downloadDir
mkdir -p $databaseDir
mkdir -p $tmpDir
cd $downloadDir

#如果/data/mysqlSoftware目录下已有下载好的mysql二进制安装包,则下面#download mysql之间的代码可注释掉
#否则需要从官网下载mysql二进制包,由于安装包在600M左右,所以下载较为耗时,整个安装过程就需较长时间

#download mysql
if [ $bit -eq 64 ];then
  wget $url1
elif [ $bit -eq 32 ];then
  wget $url2
fi
#download mysql

#解压压缩包到目标位置
ln -s $downloadDir/mysql*.tar.gz $installDir
cd $installDir
tar -xzf mysql*.tar.gz
rm -rf $installDir/mysql*.tar.gz
mv $installDir/mysql* mysql
#新建mysql用户、组及目录
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d $installDir/mysql
#更改目录属主
cd $installDir/mysql
chown -R mysql .
chgrp -R mysql .
cd $logDir
chown -R mysql .
chgrp -R mysql .
cd $databaseDir
chown -R mysql .
chgrp -R mysql .
cd $tmpDir
chown -R mysql .
chgrp -R mysql .
#配置参数
cd $installDir/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=$installDir/mysql --datadir=$databaseDir
bin/mysql_ssl_rsa_setup --datadir=$databaseDir
#修改系统配置文件
cp $configFile /etc/my.cnf
cp $installDir/mysql/support-files/mysql.server /etc/init.d/mysql
sed -i 's!^basedir=$!basedir='"$installDir"'/mysql!' /etc/init.d/mysql>/dev/null
sed -i 's!^datadir=$!datadir='"$databaseDir"'!' /etc/init.d/mysql>/dev/null
#启动mysql
cd $installDir/mysql
bin/mysqld_safe --user=mysql &
sleep 10
echo
#修改root密码
bin/mysqladmin -u root password ''"$mypasswd"''
#添加系统路径
if [ -z $oldPath ]; then
  echo "export PATH=$installDir/mysql/bin:$PATH" >> ~/.bashrc
else
  sed -i 's!'"$oldPath"'!'"$newPath"'!' ~/.bashrc
  sed -i '/^export PATH$/d' ~/.bashrc
fi
source ~/.bashrc
#配置mysql自动启动
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
}

#移除mysql
removeMysql() {
/etc/init.d/mysql status 2>/dev/null
/etc/init.d/mysql stop 2>/dev/null
ps -ef | grep 'mysql' | grep -v 'grep'| awk '{print $2}' | xargs kill -9 2>/dev/null
whereis mysql | xargs rm -rf 2>/dev/null
find / -iname 'mysql' -print0 | xargs -0 rm -rf
rm -rf /etc/my.cnf 2>/dev/null
userdel mysql 2>/dev/null
groupdel mysql 2>/dev/null
chkconfig --del mysql 2>/dev/null
rm -rf /root/.my.cnf 2>/dev/null
sed -i '/\/usr\/local\/mysql\/bin:/s/\/usr\/local\/mysql\/bin://g' /root/.bashrc
sed -i '/\/usr\/local\/mysql\/bin:/s/\/usr\/local\/mysql\/bin://g' /home/book/.bashrc
}

if [ ! $UID -eq 0 ]; then
  echo "You must be root to run this script!"
  exit 0
fi
read -p "Do you want to install or remove mysql?[i:install r:remove q:quit]" choice
if [ $choice = "i" ]; then
  installMysql
  exit 0
elif [ $choice = "r" ]; then
  removeMysql
  exit 0
elif [ $choice = "q" ]; then
  echo "Give up installation,exit!"
  exit 0
else
  echo "Wrong choice,exit!"
  exit 11
fi


运维网声明 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-300089-1-1.html 上篇帖子: mysql配置文件my.cnf 下篇帖子: Mysql自定义修改数据目录路径 二进制 通用 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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