mysql的編譯安裝,在博客 開源服務專題之--------mysql的編譯安裝 中已經說明了,可是仍是比較麻煩,尤爲是一大堆命令,來手動執行,稍有不慎,就會出錯。生產上通常都是先在本地測試環境進行自動化測試,若是ok,那麼就在生產上進行自動化安裝,省事,省力,安全。html
CentOS6.5x64 ,mysql版本:mysql-5.6.26。 採用自動化編譯安裝。mysql
熟知sed 文本編譯命令,expect交互式腳本的使用。sql
提早將須要安裝的mysql安裝包放在/root下面,固然了,下載的過程也能夠一併寫在腳本中,爲了節約時間,下載過程通常不會寫在腳本中,並且好多生產環境是不可以鏈接外網的。shell
[root@xiaolyu76 ~]# ls
anaconda-ks.cfg install.log install.log.syslog mysql-5.6.26.tar.gz mysql_install_auto.sh 數據庫
下面是個人腳本:mysql_install_auto.sh 的內容:安全
[root@xiaolyu76 ~]# cat mysql_install_auto.shbash
#!/bin/bash MYSQL_PASSWD="123456" yum remove -y mysql mysql-server yum install -y cmake ncurses-devel tar xf mysql-5.6.26.tar.gz -C /usr/local/src/ cd /usr/local/src/mysql-5.6.26 useradd -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=mysql make -j 4 && make install cd && 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/mysqld sed -i 's%^basedir=%basedir=/usr/local/mysql%' /etc/init.d/mysqld sed -i 's%^datadir=%datadir=/usr/local/mysql/data%' /etc/init.d/mysqld chkconfig mysqld on /usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/etc/my.cnf \ --basedir=/usr/local/mysql/ \ --datadir=/usr/local/mysql/data/ \ --user=mysql ls /usr/local/mysql/data/ ln -s /usr/local/mysql/bin/* /bin/ service mysqld start echo "now let's begin mysql_secure_installation " if [ ! -e /usr/bin/expect ] then yum install expect -y fi echo '#!/usr/bin/expect set timeout 60 set password [lindex $argv 0] spawn mysql_secure_installation expect { "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
[root@xiaolyu76 ~]# sh mysql_install_auto.sh //直接執行該腳本便可。post
腳本是shell腳本,最後mysql數據庫安全初始化的時候,生成一個expect的腳本:mysql_secure_installation.exp。測試
說明:爲了加強腳本的整齊美觀和可讀性,去掉了不少if 判斷以及echo $?判斷腳本是否執行成功。url
mysql編譯安裝中的相關命令和參數的說明在本人的博客:開源服務專題之--------mysql的編譯安裝 已經有了詳細說明,故本文不在贅述。
本文腳本經測試徹底正確。
本文爲做者原創博客,轉載請註明出處:http://www.cnblogs.com/jasmine-Jobs/p/6045469.html