1. 程式人生 > >mysql5.6rpm包shell腳本安裝

mysql5.6rpm包shell腳本安裝

系統 進入 修改配置 ini null tables tran 訪問 當前

1、準備工作

創建目錄,在該目錄下存放mysql的rpm包,並編輯安裝腳本和配置文件,目錄結構如下:

技術分享圖片

其中rpms目錄存放MySQL-client和MySQL-server的rpm包,install.conf為配置文件,用戶可以在其中自定義mysql的密碼,install.sh為shell腳本。

配置文件install.conf的內容如下:

#用戶自定義mysql密碼,如果不指定,默認密碼為root
define_passwd=123456

2、編輯shell腳本

mysql安裝腳本的內容如下:

  1 #!/bin/bash
  2 #desc: mysql5.6的一鍵安裝腳本
  3 #安裝說明: 將整個目錄上傳到服務器任意目錄下,修改配置文件中MySQL密碼後,直接執行可。
4 #測試環境: 該腳本在虛擬機上的centOS6.8下測試可行,Linux系統為標準桌面安裝 5 6 ###預定義變量 7 #獲得當前腳本所在目錄 8 curr_path=$(cd `dirname $0`; pwd) 9 #獲得配置文件 10 conf_file=${curr_path}/install.conf 11 #安裝包所在目錄,為腳本當前目錄的rpms下 12 mysql_rpm_dir=${curr_path}/rpms 13 #讀取配置文件,獲得用戶自定義的mysql密碼,如果用戶未指定,默認密碼為root 14 user_mysql_passwd=`sed
-e /^[ ]*define_passwd[ ]*=/!d;s/.*=[ ]*// ${conf_file}` 15 mysql_passwd=${user_mysql_passwd:-root} 16 17 18 #定義卸載已有mysql的函數 19 function uninstallOldMysql { 20 for item in `rpm -qa | grep -i mysql` 21 do 22 rpm -e --nodeps ${item} 23 done 24 for item in `find / -name mysql`
25 do 26 rm -rf ${item} 27 done 28 } 29 30 31 #讀取文件/root/.mysql_secret,獲得mysql的初始密碼 32 function getInitPasswd() { 33 for line in `cat /root/.mysql_secret` 34 do 35 word=$line 36 done 37 echo ${word} 38 } 39 40 41 #判斷mysql是否正在運行,如果正在運行,則返回1,否則返回0 42 function judgeMysqlRunning() { 43 port=`netstat -nlt | grep 3306 | wc -l` 44 if [ $port -eq 1 ]; then 45 return 0 46 else 47 return 1 48 fi 49 } 50 51 52 #停止正在運行的mysql 53 function stopRunningMysql() { 54 service mysql stop 55 } 56 57 echo `date "+%Y-%m-%d %T"` "******安裝mysql......" 58 59 #第一步:停止並卸載原有的mysql 60 echo `date "+%Y-%m-%d %T"` "---->>停止徹底卸載已有的mysql......" 61 #如果mysql正在運行,停止mysql 62 judgeMysqlRunning 63 if [ $? -eq 0 ]; then 64 stopRunningMysql 65 fi 66 #卸載mysql 67 uninstallOldMysql 68 #刪除mysql配置文件 69 rm -rf /root/.mysql_secret 70 rm -rf /usr/my.cnf 71 sleep 2 72 echo `date "+%Y-%m-%d %T"` "---->>刪除mysql執行完畢" 73 74 75 #第二步:安裝rpm安裝包 76 echo `date "+%Y-%m-%d %T"` "---->>安裝mysql-client......" 77 rpm -ivh ${mysql_rpm_dir}/MySQL-client-5.6.35-1.el6.x86_64.rpm 1>/dev/null 2>&1; sleep 2 78 echo `date "+%Y-%m-%d %T"` "---->>安裝mysql-server......" 79 rpm -ivh ${mysql_rpm_dir}/MySQL-server-5.6.35-1.el6.x86_64.rpm 1>/dev/null 2>&1; sleep 2 80 echo `date "+%Y-%m-%d %T"` "---->>mysql rpm包安裝完畢" 81 82 83 #第三步:初始化mysql,設置新密碼 84 echo `date "+%Y-%m-%d %T"` "---->>新密碼設置......" 85 #安裝後啟動mysql 86 service mysql start 1>/dev/null 2>&1; sleep 2 87 #獲取mysql初始密碼 88 init_passwd=`getInitPasswd` 89 #使用初始密碼登錄mysql,並設置新密碼 90 mysql --connect-expired-password -uroot -p${init_passwd} << EOF 1>/dev/null 2>&1; sleep 2 91 set PASSWORD=PASSWORD(${mysql_passwd}); 92 exit 93 EOF 94 sleep 2 95 echo `date "+%Y-%m-%d %T"` "---->>新密碼設置完畢" 96 97 98 #第四步:授權設置,開啟遠程訪問 99 echo `date "+%Y-%m-%d %T"` "---->>授權設置......" 100 #使用新密碼登錄mysql 101 mysql -uroot -p${mysql_passwd} << EOF 1>/dev/null 2>&1; sleep 2 102 use mysql; 103 update user set password=password(${mysql_passwd}) where user=root; 104 GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY ${mysql_passwd} WITH GRANT OPTION; 105 flush privileges; 106 exit 107 EOF 108 sleep 2 109 echo `date "+%Y-%m-%d %T"` "---->>授權執行完畢" 110 111 112 #第五步:設置開機自啟,並優化mysql配置 113 echo `date "+%Y-%m-%d %T"` "---->>配置優化並重啟mysql......" 114 cat > /usr/my.cnf << EOF 1>/dev/null 2>&1; sleep 2 115 [mysqld] 116 port = 3306 117 default-storage-engine = InnoDB 118 lower_case_table_names = 1 119 max-connections=3000 120 character_set_server=utf8 121 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 122 [mysql] 123 default-character-set=utf8 124 EOF 125 #設置開機自啟,並重啟mysql 126 chkconfig mysql on 127 service mysql restart 1>/dev/null 2>&1 128 sleep 2 129 echo `date "+%Y-%m-%d %T"` "---->>配置優化、開機自啟設置完畢" 130 echo `date "+%Y-%m-%d %T"` "******mysql安裝完畢,登錄密碼為${mysql_passwd}"

3、運行測試

將整個目錄上傳到服務器任意目錄下(註意:如果配置文件和腳本文件是在window環境下編輯的,需要將其格式轉換為UNIX格式,否在Linux系統下不被識別),進入該目錄下,在配置文件中指定mysql密碼,最後執行命令bash install.sh,運行結果如下:

技術分享圖片

mysql5.6rpm包shell腳本安裝