#!/bin/bash
# "################检查本机安装mysql的基本条件########################"
echo "Checking user :"
d=`id -u`
if [ $d -ne 0 ]
then
echo "you must be root to run this script,please user root to install"
exit 1
else
echo "user is root;this is ok"
fi
#if [ -d /data/mysql ]
#then
# echo "mysql datadir /data/mysql is exist;"
# exit 1
#else
# echo "mysql datadir /data/mysql not exits,this is ok"
#fi
p=`netstat -nlt|awk '{print $4}'|grep '3306'|awk -F ':' '{print $4}'`
if [ $p -eq 3306 ]
then
echo "mysql port exits;"
break
else
echo "mysql port not exits"
fi
##install mysql
echo "############################# MySQL installing..........########################"
cd /usr/local/src
w=`rpm -qa|grep wget`
if [ -z $w ]
then
echo "THe is wget not install;"
yum install -y wget
break
else
echo "wget install ok;"
fi
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
if [ -d /usr/local/mysql ]
then
echo "datadir exits"
break
fi
mv /usr/local/src/mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
if grep -q "mysql" /etc/passwd
then
echo "mysql user exist;"
break
else
useradd mysql
fi
dat='data/mysql'
if [ -d $dat ]
then
chown -R mysql:mysql /data/mysql
echo "mysql datadir /data/mysql is exist;"
else
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
echo "directory /data/mysql created succeed!"
fi
yum=`yum list |grep -w perl-Data-Dumper.x86_64|awk -F '.' '{print $1}'`
#yum1=`yum list |grep libaio-devel.x86_64`
if [ -z $yum ]
then
yum install -y libaio libaio-devel perl-Data-Dumper
break
fi
echo "The is install"
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
if [ $? -eq 0 ]
then
echo "mysql is installed"
break
fi
if grep -wq "datadir=/var/lib/mysql" /etc/my.cnf
then
sed -i 's@datadir=/var/lib/mysql@datadir=/data/mysql@g' /etc/my.cnf
echo "log-error = /data/mysql.log"
break
fi
echo "datadir correct;"
if grep -wq "socket=/var/lib/mysql/mysql.sock" /etc/my.cnf
then
sed -i 's@socket=/var/lib/mysql/mysql.sock@socket=/tmp/mysql.sock@g' /etc/my.cnf
sed -i 's@log-error=/var/log/mariadb/mariadb.log@log-error/data/mysql/error.log@g' /etc/my.cnf
break
fi
echo "socket correct;"
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
if grep -q "basedir=" /etc/init.d/mysqld
then
sed -i 's@basedir=@basedir=/usr/local/mysql@g' /etc/init.d/mysqld
sed -i 's@ddatadir=@datadir=/data/mysql@g' /etc/init.d/mysqld
else
break
fi
if [ $? -eq 0 ]
then
echo "mysqld correct"
break
fi
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
p=`netstat -nlt|awk '{print $4}'|grep '3306'|awk -F ':' '{print $4}'`
if [ $p -eq 3306 ]
then
echo "mysql port start;"
break
else
echo "mysql port not exits"
fi
S=`ps aux |grep -w mysqld|grep -v grep |awk '{print $2}'`
if [ -n $S ]
then
echo "msyql server start"
exit
fi