shell指令碼專題之-----------全自動編譯安裝mysql

來源:互聯網
上載者:User

標籤:可讀性   www   開源   files   install   oca   timeout   pre   img   

  mysql的編譯安裝,在部落格 開源服務專題之--------mysql的編譯安裝 中已經說明了,但是還是比較麻煩,尤其是一大堆命令,來手動執行,稍有不慎,就會出錯。生產上一般都是先在本地測試環境進行自動化測試,如果ok,那麼就在生產上進行自動化安裝,省事,省力,安全。

本文環境:

  CentOS6.5x64 ,mysql版本:mysql-5.6.26。 採用自動化編譯安裝。

相關準備工作:

  熟知sed 文本編譯命令,expect互動式指令碼的使用。

提前將需要安裝的mysql安裝包放在/root下面,當然了,下載的過程也可以一併寫在指令碼中,為了節約時間,下載過程一般不會寫在指令碼中,而且好多生產環境是不能夠串連外網的。

[[email protected] ~]# ls
anaconda-ks.cfg   install.log install.log.syslog mysql-5.6.26.tar.gz  mysql_install_auto.sh 

下面是我的指令碼:mysql_install_auto.sh 的內容:

[[email protected] ~]# cat mysql_install_auto.sh

 

#!/bin/bashMYSQL_PASSWD="123456"yum remove  -y mysql mysql-serveryum install -y cmake     ncurses-devel tar xf mysql-5.6.26.tar.gz -C /usr/local/src/ cd /usr/local/src/mysql-5.6.26useradd -M -s /sbin/nologin mysql cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_UNIX_ADDR=/tmp/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=/usr/local/mysql/data  -DMYSQL-USER=mysqlmake -j 4 && make installcd && chown -R mysql:mysql /usr/local/mysql/cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldsed  -i ‘s%^basedir=%basedir=/usr/local/mysql%‘ /etc/init.d/mysqldsed  -i ‘s%^datadir=%datadir=/usr/local/mysql/data%‘ /etc/init.d/mysqldchkconfig mysqld on/usr/local/mysql/scripts/mysql_install_db  --defaults-file=/etc/my.cnf   --basedir=/usr/local/mysql/   --datadir=/usr/local/mysql/data/   --user=mysqlls /usr/local/mysql/data/ln -s /usr/local/mysql/bin/* /bin/service mysqld startecho "now let‘s begin mysql_secure_installation "if [ ! -e /usr/bin/expect ]  then  yum install expect -y fiecho ‘#!/usr/bin/expectset timeout 60set password [lindex $argv 0]spawn mysql_secure_installationexpect {"enter for none" { send "\r"; exp_continue}"Y/n" { send "Y\r" ; exp_continue}"password" { send "$password\r"; exp_continue}"Cleaning up" { send "\r"}}interact ‘ > mysql_secure_installation.exp chmod +x mysql_secure_installation.exp./mysql_secure_installation.exp $MYSQL_PASSWD 

[[email protected] ~]# sh  mysql_install_auto.sh    //直接執行該指令碼即可。

指令碼是shell指令碼,最後mysql資料庫安全初始化的時候,產生一個expect的指令碼:mysql_secure_installation.exp。

說明:為了增強指令碼的整齊美觀和可讀性,去掉了很多if 判斷以及echo $?判斷指令碼是否執行成功。

mysql編譯安裝中的相關命令和參數的說明在本人的部落格:開源服務專題之--------mysql的編譯安裝 已經有了詳細說明,故本文不在贅述。

本文指令碼經測試完全正確。

本文為作者原創部落格,轉載請註明出處:http://www.cnblogs.com/jasmine-Jobs/p/6045469.html

 

shell指令碼專題之-----------全自動編譯安裝mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.