#!/bin/bash
# -----------------------------------------------------------------------------
# Installation Script for the auto-deployment EMM(Linux edition)
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# shell script to install MySQL (default version mysql-community-5.7.)
echo "-----------------------start install mysql----------------------"
# Remove pre-installed on OS MariaDB if exists
echo "-----------------------start uninstall mariadb------------------"
for i in $(rpm -qa | grep mariadb | grep -v grep)
do
echo "Deleting rpm --> "$i
rpm -e --nodeps $i
done
echo "-----------------------end uninstall mariadb------------------"
# check installed mysql or not
echo "-----------------------start delete mysql------------------"
for i in `rpm -qa | grep "mysql"`
do
rpm -e --allmatches $i --nodeps
done
echo "-----------------------end delete mysql------------------"
echo "-----------------------start delete my.cnf------------------"
rm /etc/my.cnf
echo "-----------------------end delete my.cnf------------------"
echo "-----------------------start adding user mysql------------------"
if [ `grep "mysql" /etc/passwd | wc -l` -eq 0 ];then
echo "adding user mysql"
groupadd mysql
useradd -r -g mysql mysql
else
echo "mysql user is exist"
fi
echo "-----------------------end adding user mysql--------------------"
# Install mysqlserver
echo "-----------------------start tar mysql--------------------"
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql
echo "-----------------------end tar mysql--------------------"
echo "-----------------------start mv and chown mysql--------------------"
mv mysql-5.7.37-linux-glibc2.12-x86_64/ /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
echo "-----------------------end mv and chown mysql--------------------"
echo "-----------------------start go in /usr/local/mysql --------------------"
# 进入mysql这个目录
cd /usr/local/mysql
echo "-----------------------end go in /usr/local/mysql--------------------"
echo "-----------------------start chown data--------------------"
# 建立存放mysql数据的目录
mkdir /data/mysql -p
chown mysql:mysql /data/mysql
chmod 750 /data/mysql
echo "-----------------------end chown data--------------------"
# 进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin
echo "-----------------------start initialize mysql--------------------"
# 初始化mysql
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql &>passwd.txt
# 让MySQL支持ssl方式登录,加密
./mysql_ssl_rsa_setup --datadir=/data/mysql/
echo "-----------------------end initialize mysql--------------------"
echo "-----------------------start tem_passwd mysql--------------------"
# 获取临时密码
tem_passwd=$(cat passwd.txt | grep "temporary"|awk '{print $NF}')
echo "-----------------------end tem_passwd mysql--------------------"
echo "-----------------------start modify PATH--------------------"
# 修改PATH变量,加入mysql bin目录的路径
# 临时修改PATH变量的值
PATH=/usr/local/mysql/bin/:$PATH
echo 'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
echo "-----------------------end modify PATH--------------------"
echo "-----------------------start copy mysql.server--------------------"
# 复制support-files里的mysql.server文件到/etc/init.d/目录下叫作mysqld
cp ../support-files/mysql.server /etc/init.d/mysqld
# /etc/init.d/mysqld脚本文件的datadir目录的值
sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
echo "-----------------------end copy mysql.server--------------------"
echo "-----------------------start generate my.cnf--------------------"
# 生成/etc/my.cnf配置文件
cat >/etc/my.cnf <<EOF
[mysql_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port=3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
EOF
chmod -R 775 /etc/my.cnf
echo "-----------------------end generate my.cnf--------------------"
echo "-----------------------start service mysqld --------------------"
# 启动mysqld进程
service mysqld start
echo "-----------------------end service mysqld--------------------"
# 将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
# 设置mysqld服务开机启动
/sbin/chkconfig mysqld on
echo "-----------------------start change pwd--------------------"
# --connect-expired-passwd 初次修改密码需要使用
# -e 后面接表示在mysql里需要执行的命令 excute 执行
# set password='admin123'; 修改root用户的密码为admin123
mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='admin123';"
# 验证上一步修改密码是否成功
mysql -uroot -p'admin123' -e "show databases;"
echo "-----------------------end change pwd--------------------"
mysql -uroot -p'admin123' -e "use mysql;"
mysql -uroot -p'admin123' -e "update user set user.Host='%' where user.User='root';"
mysql -uroot -p'admin123' -e "flush privileges;"
# 开放3306端口命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 配置立即生效
firewall-cmd --reload
echo "-----------------------end install mysql----------------------"