CentOS6.5一鍵安裝MySQL5.5.32(源碼編譯)

來源:互聯網
上載者:User

標籤:support   kconfig   tar   連接埠   配置資訊   led   配置   package   on()   

##################################################
#mysql_install.sh                                                                                   #
#initialize the Linux system to deploy lnmp                                               #
#2016/10/31 16:41                                                                                #
#kangjie                                                                                                #
##################################################
#!/bin/sh

#定義檔案的位置
LOG_PATH=/server/initlog
LOG_FILE=$LOG_PATH/mysql_install.log

#MySQL安裝路徑
MYSQL_BASEDIR=/data/mysqlbasedir

#資料目錄
MYSQL_DATA=/data/mysql
MYSQL_POS=/home/package
i=0

判斷目錄是否存在,沒有則建立
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
[ ! -d $MYSQL_BASEDIR ] && mkdir -p $MYSQL_BASEDIR
[ ! -d $MYSQL_DATA ] && mkdir -p ${MYSQL_DATA}/data
[ ! -d $MYSQL_POS ] && mkdir -p $MYSQL_POS
#mysql5.5.32
#check

#檢查執行狀態,將狀態寫入記錄檔
function check(){
if [ $? != 0 ]
then
echo "××××-Install $1 Failed!!!-×××" >> $LOG_FILE
else
echo "√√√-Install $1 Success-√√√" >> $LOG_FILE
fi
}

#安裝依賴包
function prepare(){
yum install cmake gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make -y
check libs

#useradd

#添加使用者和組, mysql使用者不能登入

groupadd mysql
useradd mysql -s /bin/nologin -M -g mysql
check groupadd-useradd

#mkdir

#mysql檔案目錄更改組使用者為mysql
chown -R mysql.mysql /data/mysql
check chown-mysql

#解壓檔案
cd $MYSQL_POS && tar zxf mysql-5.5.32.tar.gz
check MySQL-tar-zxf
}

 

#compile

#編譯源碼--指定安裝位置--編碼方式--支援的引擎--資料目錄--使用者--連接埠
function compile(){
cmake -DCMAKE_INSTALL_PREFIX=$MYSQL_BASEDIR -DMYSQL_UNIX_ADDR=$MYSQL_DATA/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=$MYSQL_DATA/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
}
#my.cnf

#將配置資訊寫入設定檔
function mycnf(){
cat >>/etc/my.cnf<<EOF
[client]

port = 3306

socket = $MYSQL_DATA/mysql.sock

[mysqld]

port = 3306

socket = $MYSQL_DATA/mysql.sock

basedir = $MYSQL_BASEDIR

datadir = $MYSQL_DATA/data

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

skip-name-resolve

log-bin=mysql-bin

binlog_format=mixed

max_binlog_size = 500M

server-id = 1

[mysqld_safe]

log-error=$MYSQL_DATA/mysql.err

pid-file=$MYSQL_DATA/mysql.pid

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

EOF
}
#init

#初始化資料庫 , 添加開機啟動
function init(){
$MYSQL_BASEDIR/scripts/mysql_install_db --basedir=$MYSQL_BASEDIR --datadir=$MYSQL_DATA/data --user=mysql
cp $MYSQL_BASEDIR/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

}
#mail

#發送郵件(郵件配置參考上一篇文章)
function Mail(){
mail -s "***Linux Deploy Report***" [email protected] < $LOG_FILE
}


#main

#調用上邊的函數

#首先是安裝依賴包,然後編譯源碼:cmake , make, make install, 修改MySQL設定檔,設定環境變數,初始化MySQL,啟動,發郵件

function main(){
ip=`awk ‘/IPADDR/‘ /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F "=" ‘{print $2}‘ `
echo "Deploy MySQL ****$ip****`date +"%Y-%m-%d_%H-%M-%S"`*****">>$LOG_FILE
prepare
cd $MYSQL_POS/mysql-5.5.32 && compile && make && make install
check make_install
ln -sv $MYSQL_BASEDIR /usr/local/mysql
mycnf
check mycnf
echo "export PATH=$MYSQL_BASEDIR/bin:$PATH" >> /etc/profile.d/mysql.sh
source /etc/profile
init
/etc/init.d/mysqld start
check mysql_start
mysql -uroot -e "select version();"
if [ $? == 0 ]
then
mysql -uroot -e "show databases;" >> $LOG_FILE
mysqladmin -uroot password ‘888888‘
check mysql_change_password

else
echo "MySQL Install Failed" >> $LOG_FILE
fi
Mail
}

main

CentOS6.5一鍵安裝MySQL5.5.32(源碼編譯)

聯繫我們

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