function green_echo () {
local what=$*
echo -e "\e[1;32m ${what} \e[0m"
}
function red_echo () {
local what=$*
echo -e "\e[1;31m ${what} \e[0m"
}
function if_check () {
if [ $? -ne 0 ];then
red_echo "$time $*" >> /tmp/install_mysql.log
exit 1
fi
}
green_echo "$(date "+%F %H:%M:%S") MySQL 开始安装" > /tmp/install_mysql.log
pack_dir="/data/packages"
my_dir="/usr/local/mysql"
my_pack="mysql-5.6.14.tar.gz"
my_ver="mysql-5.6.14"
my_cmd="$my_dir/bin/mysql"
my_pass="yunjee0515ueopro1234"
data_dir="/usr/local/mysql/data"
[ -d ${data_dir} ] || mkdir -p ${data_dir}
yum -y install autoconf automake bc bind-utils bzip2 bzip2-devel curl curl-devel dmidecode e2fsprogs-devel expat expat-devel freetype* gcc gcc-c++ gettext gettext-devel glib2 glib2-devel glibc glibc-devel hdparm krb5-devel libaio libaio-devel libidn-devel libjpeg libpng libxml2 libxml2-devel lrzsz mlocate ncurses ncurses-devel net-snmp net-snmp-devel net-snmp-libs net-snmp-utils ntp openssh-clients openssl-devel pam-devel rsync rsyslog-relp screen smartmontools strace sysstat telnet vim* vixie-cron wget yum-fastestmirror zip zlib-devel cmake
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") YUM 依赖包安装成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") YUM 依赖包安装失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
id mysql &> /dev/null || useradd mysql -s /sbin/nologin -M
chown -R mysql.mysql ${data_dir}
cd /opt
tar zxf ${pack_dir}/${my_pack}
cd ${my_ver}
cmake . -DCMAKE_INSTALL_PREFIX=${my_dir} \
-DSYSCONFDIR=${data_dir} \
-DWITH_SSL=yes \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=${data_dir}
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") MySQL CMAKE 编译成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") MySQL CMAKE 编译失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
make && make install
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") MySQL (MAKE|MAKE INSTALL) 安装成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") MySQL (MAKE|MAKE INSTALL) 安装失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
echo "" >> /etc/profile
echo "" >> /etc/profile
echo "PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile
echo "export PATH" >> /etc/profile && export PATH
cp -f ${my_dir}/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
${my_dir}/scripts/mysql_install_db --basedir=${my_dir} --datadir=${data_dir} --user=mysql
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") MySQL 初始化数据库成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") MySQL 初始化数据库失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
/etc/init.d/mysqld start
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") MySQL 服务启动成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") MySQL 服务启动失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
${my_cmd}admin -u root password "${my_pass}"
${my_cmd} -p${my_pass} -e "GRANT all PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '${my_pass}';
GRANT all PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '${my_pass}';
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'XXMysql^&';
FLUSH PRIVILEGES;"
if_check "$(date "+%F %H:%M:%S") grant is a failed !!!"
if [ $? -eq 0 ];then
green_echo "$(date "+%F %H:%M:%S") MySQL GRANT 授权成功" >> /tmp/install_mysql.log
else
red_echo "$(date "+%F %H:%M:%S") MySQL GRANT 授权失败,请校验..." >> /tmp/install_mysql.log
exit 1
fi
green_echo "$(date "+%F %H:%M:%S") MySQL 安装完成" >> /tmp/install_mysql.log