新聞中心
mysql的編譯安裝,在 linux下MySQL的編譯安裝圖文詳述 中已經(jīng)說(shuō)明了,但是還是比較麻煩,尤其是一大堆命令,來(lái)手動(dòng)執(zhí)行,稍有不慎,就會(huì)出錯(cuò)。生產(chǎn)上一般都是先在本地測(cè)試環(huán)境進(jìn)行自動(dòng)化測(cè)試,如果ok,那么就在生產(chǎn)上進(jìn)行自動(dòng)化安裝,省事,省力,安全。

本文環(huán)境:
CentOS6.5x64 ,mysql版本:mysql-5.6.26。 采用自動(dòng)化編譯安裝。
相關(guān)準(zhǔn)備工作:
熟知sed 文本編譯命令,expect交互式腳本的使用。
提前將需要安裝的mysql安裝包放在/root下面,當(dāng)然了,下載的過(guò)程也可以一并寫(xiě)在腳本中,為了節(jié)約時(shí)間,下載過(guò)程一般不會(huì)寫(xiě)在腳本中,而且好多生產(chǎn)環(huán)境是不能夠連接外網(wǎng)的。
[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 的內(nèi)容:
[root@xiaolyu76 ~]# cat mysql_install_auto.sh
#!/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 //直接執(zhí)行該腳本即可。
腳本是shell腳本,最后mysql數(shù)據(jù)庫(kù)安全初始化的時(shí)候,生成一個(gè)expect的腳本:mysql_secure_installation.exp。
說(shuō)明:為了增強(qiáng)腳本的整齊美觀和可讀性,去掉了很多if 判斷以及echo $?判斷腳本是否執(zhí)行成功。
本文腳本經(jīng)測(cè)試完全正確。
當(dāng)前標(biāo)題:Linux下全自動(dòng)編譯安裝MySQL
網(wǎng)站路徑:http://fisionsoft.com.cn/article/ccdepcp.html


咨詢(xún)
建站咨詢(xún)
