|
#!/bin/sh
#*************************
#Created By: yixianwei.cn
#*************************
yum install -y grep procps coreutils xfsprogs util-linux-ng e2fsprogs libselinux-utils chkconfig wget yum-utils gawk libaio cronie xz
if [ -b /dev/sdb ] ;then
if [ -z "`mount |grep /dev/sdb`" ] ;then
mkfs.xfs -b> if [ -z "`blkid /dev/sdb`" ] ;then
uuidgen | xargs tune2fs /dev/sdb -U
fi
sdbuuid="`blkid -o value -s UUID /dev/sdb`"
if [ -z "`grep $sdbuuid /etc/fstab`" ] ;then
echo "UUID=$sdbuuid /data xfs rw,noatime,noikeep,allocsize=16M,attr2,largeio,inode64 0 0" >> /etc/fstab
echo "echo \"deadline\" >/sys/block/sdb/queue/scheduler" > /etc/profile.d/skyeye_mysql.sh
sh /etc/profile.d/skyeye_mysql.sh
fi
mkdir -p /data
mount -a
else
mkdir -p /data
fi
else
mkdir -p /data
fi
if [ -z "`grep -i mysql /etc/security/limits.conf`" ] ;then
echo "mysql - proc 10240" >> /etc/security/limits.conf
echo "mysql - nofile 65535" >> /etc/security/limits.conf
ulimit -u 10240
ulimit -n 65535
fi
if [ -z "`grep -i tcp_timestamps /etc/sysctl.conf`" ] ;then
echo "net.ipv4.tcp_timestamps = 1" >> /etc/sysctl.conf
fi
if [ -z "`grep -i tcp_tw_recycle /etc/sysctl.conf`" ] ;then
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
fi
if [ -z "`grep -i tcp_tw_reuse /etc/sysctl.conf`" ] ;then
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
fi
if [ -z "`grep -i swappiness /etc/sysctl.conf`" ] ;then
echo "vm.swappiness = 1" >> /etc/sysctl.conf
fi
if [ -z "`grep -i aio-max-nr /etc/sysctl.conf`" ] ;then
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
fi
if [ -z "`grep -i ip_local_port_range /etc/sysctl.conf`" ] ;then
echo "net.ipv4.ip_local_port_range = 10000 65535" >> /etc/sysctl.conf
fi
sysctl -p
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
service mysql stop
service mysqld stop
mysqld_multi --user=root stop
killall -9 mysqld_safe
killall -9 mysqld
oldmysqlserver="`rpm -qa|egrep -i mysql-server`"
if [ -n "$oldmysqlserver" ] ;then
yum erase -y $oldmysqlserver
fi
yum localinstall -y mysql-community-release-el6-5.noarch.rpm
mysqlrepo="`yum repolist all | egrep -i mysql[0-9]+-community |grep enabled|awk '{print $1}'`"
yum-config-manager --disable $mysqlrepo
yum-config-manager --enable mysql56-community
yum install -y mysql-community-client*`uname -m`.rpm mysql-community-devel*`uname -m`.rpm mysql-community-server*`uname -m`.rpm mysql-community-common*`uname -m`.rpm mysql-community-libs*`uname -m`.rpm mysql-community-libs-compat*`uname -m`.rpm
service mysqld stop
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
if [ ! -d /data/mysql/mysqldata3306 ] ;then
mkdir -p /data/mysql/mysqldata3306
mkdir -p /data/mysql/mysqldata3306/mydata
mkdir -p /data/mysql/mysqldata3306/binlog
mkdir -p /data/mysql/mysqldata3306/innodb_ts
mkdir -p /data/mysql/mysqldata3306/innodb_log
mkdir -p /data/mysql/mysqldata3306/relaylog
mkdir -p /data/mysql/mysqldata3306/tmpdir
mkdir -p /data/mysql/mysqldata3306/log
mkdir -p /data/mysql/mysqldata3306/sock
chown -R mysql:mysql /data/mysql/mysqldata3306
fi
if [ -f /etc/my.cnf ] ;then
mv -f /etc/my.cnf "/etc/my.cnf.`date +%s`.bak"
fi
if [ -f /etc/mysql/my.cnf ] ;then
mv -f /etc/mysql/my.cnf "/etc/mysql/my.cnf.`date +%s`.bak"
fi
if [ -f /usr/etc/my.cnf ] ;then
mv -f /usr/etc/my.cnf "/usr/etc/my.cnf.`date +%s`.bak"
fi
if [ -f ~/.my.cnf ] ;then
mv -f ~/.my.cnf "~/.my.cnf.`date +%s`.bak"
fi
if [ -f /root/.my.cnf ] ;then
mv -f /root/.my.cnf "/root/.`date +%s`.bak"
fi
if [ -f /var/lib/mysql/.my.cnf ] ;then
mv -f /var/lib/mysql/.my.cnf "/var/lib/mysql/.`date +%s`.bak"
fi
mysqlhome="`grep ^mysql /etc/passwd |awk -F':' '{print $6}'`"
if [ -f "$mysqlhome/.my.cnf" ] ;then
mv -f $mysqlhome/.my.cnf "$mysqlhome/.`date +%s`.bak"
fi
bpsize="`free -m |grep Mem:|awk '{print int($2/2)==$2/2?$2/2:int($2/2)+1}'`M"
iocapacity="`df -B GB --total /data |grep total|awk '{sub(/GB/,\"\",$2);print ($2/300==int($2/300)?$2/300:int($2/300)+1)*100}'`"
cat >> /etc/my.cnf |
|
|