1、下面是自动化shell脚本部署mysql5.6版本的,注意mysql5.7在初始化的时候,有一个地方显示初始化mysql的密码。所以不适用于mysql5.7版本。
其次,这里需要先将5.6版本的包放到SOFTWARE_PATH
地方。然后根据实际情况可以修改脚本中的变量。
[root@bfd01 shell]# cat install_mysql.sh
#!/bin/bash
#系统版本号
RELEASE=''
#mysql安装包名
MYSQL_VERSION='mysql-5.6.39-linux-glibc2.12-x86_64'
#mysql安装的位置
MYSQL_INSTALL_PATH='/usr/local'
#存放二进制包的路径
SOFTWARE_PATH='/opt/software'
#1 步骤输出 紫色
#2 正确输出 绿色
#3 错误输出 红色
#4 提示输出 蓝色
#5 警告输出 黄色
function echo_fun(){
if [ $# -ge 2 ];then
params_num=$1
shift 1
params_mes=$@
else
echo_fun 3 请至少输入两个参数 echo_fun ..
exit
fi
case $params_num in
1)
echo -e "\033[35;40;1m ***************************** ${params_mes} *****************************\033[0m\r\n"
;;
2)
echo -e "\033[32;40;1m ${params_mes}\033[0m\r\n"
;;
3)
echo -e "\033[31;40;1m ${params_mes}\033[0m\r\n"
;;
4)
echo -e "\033[36;40;1m ${params_mes}\033[0m\r\n"
;;
5)
echo -e "\033[33;40;1m ${params_mes} \033[0m\r\n"
;;
*)
echo_fun 3 参数异常第一个参数应为1,2,3,4,5
;;
esac
}
echo_fun 1 mysql部署安装
#检查之前是否存在mysql用户,删除之前存在mysql用户。
echo_fun 4 检查之前是否存在mysql用户,删除之前存在mysql用户
OldUser=`cat /etc/passwd|grep mysql |awk -F ':' '{print $1}'`
if [ "$OldUser" = "mysql" ]; then
userdel mysql
rm -rf /home/mysql
rm -rf /var/spool/mail/mysql
echo_fun 2 删除成功
fi
#创建新的mysql用户
echo_fun 4 创建新的mysql用户
groupadd mysql
useradd -m -g mysql mysql
#部署安装
echo_fun 4 开始安装
cd $SOFTWARE_PATH
tar -xf ${MYSQL_VERSION}.tar.gz -C ${MYSQL_INSTALL_PATH}
ln -s ${MYSQL_INSTALL_PATH}/${MYSQL_VERSION} ${MYSQL_INSTALL_PATH}/mysql
chown -R mysql:mysql ${MYSQL_INSTALL_PATH}/mysql*
cd ${MYSQL_INSTALL_PATH}
chown -R mysql:mysql mysql*
cd ${MYSQL_INSTALL_PATH}/mysql
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysql.server
#初始化数据库
echo_fun 4 初始化数据库
scripts/mysql_install_db --user=mysql
#启动mysql服务
/etc/init.d/mysql.server start
mysql_pid_num=`ps -ef |grep mysqld|grep -v grep|wc -l`
if [ $mysql_pid_num -ge 2 ];then
echo_fun 2 安装成功,并已经启动mysql服务
else
echo_fun 3 安装失败
fi
#配置环境变量
echo_fun 4 配置环境变量
echo -e 'export MYSQL_HOME=/usr/local/mysql\nexport PATH=${MYSQL_HOME}/bin:$PATH'>> /etc/profile
source /etc/profile
#初始化mysql的root用户密码
echo_fun 4 初始化mysql的root用户密码
mysql -uroot << EOF
set password = password("baifendian");
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'baifendian';
GRANT ALL PRIVILEGES ON *.* TO 'root'@localhost IDENTIFIED BY 'baifendian';
flush privileges;
EOF