您好,登錄后才能下訂單哦!
mysql5.5、5.6自動化安裝腳本怎么寫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
使用環境:①CentOS6 & Cent OS7
②聯網環境下下載mysql軟件包
腳本:
#!/bin/bash #Date 2018/9/10 [ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1 #id –u 檢測當前用戶id 0為root用戶 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin which mysqld if [ $? -eq 0 ];then #$? 上條命令退出狀態,附1 yum remove `yum list installed | grep mysql` -y exit 1 fi if [ ! -d /opt ];then #[ –d file ]檢查是否為目錄,附2 mkdir /opt && cd /opt else cd /opt fi echo "# Atuo 編譯安裝mysql5.5/5.6 #" echo "1 Install mysql-5.5" echo "2 Install mysql-5.6" echo "3 EXIT" read -p "Please input your choice:" NUM case $NUM in 1) echo -e "\033[32m Start Install mysql-5.5 Now \033[0m" wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.24.tar.gz TDIR=mysql-5.5.24 ;; 2) echo -e "\033[32m Start Install mysql-5.6 Now \033[0m" wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz TDIR=mysql-5.6.22 ;; 3) echo "exit install!!!" exit 1 ;; *) echo "Input Error! Pease input{1|2|3|4}" exit 0 ;; esac if [ $? -eq 0 ];then tar zxf $TDIR.tar.gz else echo -e "\033[32m Download error! Please check your network !!!\033[0m" exit 1 fi mysqlu=`awk -F: '$0~/mysql/' /etc/passwd |wc -l` #’$0~/mysql/’ $0表示匹配所有域,以:分割,第一個域就是$1; /部分是分割; mysql部分是模式;附3 mysqlg=`awk -F: '$0~/mysql/' /etc/group |wc -l` if [ $mysqlu -ne 0 ]&&[ $mysqlg -ne 0 ];then echo -e "\033[32m mysql is exists! \033[0m" else /usr/sbin/useradd -s /sbin/nologin mysql fi [ ! -d /usr/local/mysql ] && mkdir -p /usr/local/mysql yum install -y gcc gcc-c++ make cmake ncurses-devel bison libaio-devel cd /opt/$TDIR cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/home/mysql \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 make && make install if [ $? -eq 0 ];then chown -R mysql.mysql /usr/local/mysql echo "export PATH=$PATH:/usr/local/mysql/bin/ " >> /etc/profile source /etc/profile cp support-files/my-*.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld chkconfig --add /etc/init.d/mysqld chkconfig mysqld --level 35 on fi /usr/local/mysql/scripts/mysql_install_db \ --user=mysql \ --ldata=/var/lib/mysql \ --basedir=/usr/local/mysql \ --datadir=/home/mysql ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock sed -i 's#^basedir=.*$#basedir=/usr/local/mysql#' /etc/init.d/mysqld # –i表示插入;s表示替換;#號表示分割符;附4 sed -i 's#^datadir=.*$#datadir=/home/mysql#' /etc/init.d/mysqld /etc/init.d/mysqld start Start=`echo $?` Netstat=`netstat -ntap | grep mysql |wc -l` if [ $Start -eq 0 ]&&[ $Netstat -eq 1 ];then echo -e "\033[32m $TDIR is install success! \033[0m" else echo -e "\033[32m $TDIR is install fail! \033[0m" fi
附一:退出狀態值及其含義
狀態值 含義
0 程序運行成功,未遇到問題
1—125 運行失敗,腳本命令、系統命令或參數傳遞錯誤
126 找到該命令但無法執行
127 未找到要運行的命令
>128 命令被系統強行結束
附二:文件操作符
文件運算符 | 文件描述 |
-d file | 是否為目錄 |
-e file | 是否存在 |
-f file | 是否為普通文件 |
-r file | 是否可讀 |
-w file | 是否可寫 |
-x file | 是否可執行 |
-s file | 長度是否為0 |
-L file | 是否符號化鏈接 |
附三、awk
awk調用用法
①shell命令:awk [ –F 域分隔符] ’awk程序段‘ 輸入文件
②awk程序插入腳本文件 awk –f awk腳本文件 輸入文件
③執行腳本 ./awk腳本文件 輸入文件
附四、sed
sed調用用法
①shell命令:sed [ 選項 ] ’sed命令‘ 輸入文件
②sed程序插入腳本文件 sed [ 選項 ] –f sed腳本文件 輸入文件
③執行腳本 ./sed腳本文件 輸入文件
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。