MySql一鍵安裝shell指令碼

來源:互聯網
上載者:User

標籤: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 1fi#安裝依賴包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_TypeSetup_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-logmkdir /mydatamkdir /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/nullif [ $? -eq 0 ]thenecho "$RPM is install Yes."else echo "$RPM is Not install."fi}RPM_Install#判斷使用者和使用者組Add_Group_User(){egrep "^$Group_Name" /etc/group >& /dev/nullif [ $? -ne 0 ]then    echo "mysql 使用者組正在添加."    groupadd $Group_Nameelse    echo " The $Group_Name user group already exists."    echo "mysql 使用者組已經添加."fi#判斷mysql使用者是否存在egrep "^$User_Name" /etc/passwd >& /dev/nullif [ $? -ne 0 ]then    echo "mysql 使用者正在添加."    useradd -g $Group_Name $User_Nameelse    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#編譯安裝mysqlcd $Setup_pathtar -zxvf $Install_Packagecd $Package_Versionconfigure_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 ]]thenmake && make installelseecho "編譯失敗,請重新編譯" && exit 1fi#修改mysql組和資料目錄cd $Install_prefixchown :mysql ./* -Rchown -R mysql:mysql $DataDirchown -R mysql:mysql /mydata/bin-log#初始化資料庫$Install_prefix/scripts/mysql_install_db --user=mysql --datadir=$DataDir#判斷是否初始化成功,目錄不為空白說明成功,目錄為空白則失敗if [ "$(ls -A $DataDir)" ]; thenecho "$DataDir is not Empty"elseecho "$DataDir is Empty"fi#提供服務指令碼cp $Install_prefix/support-files/mysql.server /etc/rc.d/init.d/mysqldchmod +x /etc/rc.d/init.d/mysqldchkconfig --add mysqld#提供設定檔#mv /etc/my.cnf /etc/my.cnf.bak#mv /etc/my.cnf.d /etc/my.cnf.d.bakif [ -e /etc/my.cnf ]thenecho "File exists."mv /etc/my.cnf /etc/my.cnf.bakelseecho "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."#fimkdir $MySql_Confcp $Install_prefix/support-files/my-default.cnf  /etc/mysql/my.cnfsed -i ‘/datadir/a\datadir = /mydata/data‘ /etc/mysql/my.cnfsed -i ‘/log_bin/a\log_bin = /mydata/bin-log/mysql-bin‘ /etc/mysql/my.cnfsed -i ‘$ a\innodb_file_per_table = 1‘ /etc/mysql/my.cnf#修改環境變數cat >/etc/profile.d/mysql.sh << EOFexport PATH=/usr/local/mysql/bin/:$PATHEOFsource /etc/profile.d/mysql.shsource /etc/profileman -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 startfi}MySQL_running


本文出自 “白手起家” 部落格,請務必保留此出處http://bosszhang.blog.51cto.com/2580498/1978995

MySql一鍵安裝shell指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.