mysql最新通用二進制分發版本5.7.16自動安裝shell腳本

#!/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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章