当前位置: 操作系统/服务器>linux
mysql源码安装脚本分享
来源: 互联网 发布时间:2014-10-15
本文导语: 代码如下:#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHclear;SysName=""SysBit=""CpuNum=""RamTotal=""RamSwap=""FileMax=""MysqlVersion="Percona-Server-5.6.15-rel63.0"MysqlLine="http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source"Mysql...
代码如下:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear;
SysName=""
SysBit=""
CpuNum=""
RamTotal=""
RamSwap=""
FileMax=""
MysqlVersion="Percona-Server-5.6.15-rel63.0"
MysqlLine="http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source"
MysqlPath="/usr/local/mysql"
MysqlDataPath="$MysqlPath/data"
MysqlLogPath="/var/log/mysql"
MysqlConfigPath="$MysqlPath/conf"
MysqlPass="test123"
SYSTEM_CHECK(){
[[ $(id -u) != '0' ]] && echo '[Error] Please use root to install PUPPET.' && exit;
egrep -i "centos" /etc/issue && SysName='centos';
egrep -i "ubuntu" /etc/issue && SysName='ubuntu';
[[ "$SysName" == '' ]] && echo '[Error] Your system is not supported this script' && exit;
SysBit='32' && [ `getconf WORD_BIT` == '32' ] && [ `getconf LONG_BIT` == '64' ] && SysBit='64';
CpuNum=`cat /proc/cpuinfo |grep 'processor'|wc -l`;
RamTotal=`free -m | grep 'Mem' | awk '{print $2}'`;
RamSwap=`free -m | grep 'Swap' | awk '{print $2}'`;
FileMax=`cat /proc/sys/fs/file-max`
}
INSTALL_BASE_PACKAGES()
{
SYSTEM_CHECK
if [ "$SysName" == 'centos' ]; then
echo '[yum-fastestmirror Installing] ************************************************** >>';
yum -y install yum-fastestmirror;
cp /etc/yum.conf /etc/yum.conf.lnmp
sed -i 's:exclude=.*:exclude=:g' /etc/yum.conf
for packages in gcc gcc-c++ openssl-devel ncurses-devel wget crontabs iptables bison cmake automake make readline-devel logrotate openssl; do
echo "[${packages} Installing] ************************************************** >>";
yum -y install $packages;
done;
mv -f /etc/yum.conf.lnmp /etc/yum.conf;
else
apt-get remove -y mysql-client mysql-server mysql-common;
apt-get update;
for packages in gcc g++ cmake make ntp logrotate cron bison libncurses5-dev libncurses5 libssl-dev openssl curl openssl; do
echo "[${packages} Installing] ************************************************** >>";
apt-get install -y $packages --force-yes;apt-get -fy install;apt-get -y autoremove;
done;
fi;
}
INSTALL_MYSQL(){
INSTALL_BASE_PACKAGES
cd /tmp/
echo "[${MysqlVersion} Installing] ************************************************** >>";
[ ! -f ${MysqlVersion}.tar.gz ] && wget -c ${MysqlLine}/${MysqlVersion}.tar.gz
tar -zxf /tmp/$MysqlVersion.tar.gz;
cd /tmp/$MysqlVersion;
groupadd mysql;
useradd -s /sbin/nologin -g mysql mysql;
cmake -DCMAKE_INSTALL_PREFIX=$MysqlPath -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=ON -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_UNIT_TESTS=OFF;
make -j $Cpunum;
make install;
for path in $MysqlLogPath $MysqlPath $MysqlConfigPath/conf.d $MysqlDataPath;do
[ ! -d $path ] && mkdir -p $path
chmod 740 $path;
chown -R mysql:mysql $path;
done
# EOF **********************************
cat > $MysqlConfigPath/my.cnf