shellscript-15-一键部署mysql5.7.40

脚本内容

#!/bin/bash

# author: yolo
# 一键安装mysql5.7

ch_ok()
{
	if [ $? -ne 0 ]
	then
		echo "$1 error"
		exit 1
	fi
}

download_mysql()
{
	# 下载安装包
	cd /usr/local/src
	if [ -f mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar ]
	then
		echo “当前目录存在包 mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar”
		echo “检测md5”
		mysql_md5=`md5sum mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar|awk '{print $1}'`
		if [ ${mysql_md5} == "f29a119ac3b622cef868e776fb7490a9" ]
		then
			return 0
		else
			sudo /bin/mv mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar.old
		fi
	fi
	sudo curl -O https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
	ch_ok "下载mysql"
}

# 卸载mariadb

un_db()
{
	if rpm -qa | grep mariadb >/dev/null
	then
        	ma_db=`rpm -qa | grep mariadb`
        	echo "有服务 $ma_db"
		echo "卸载mariadb"
        	rpm -e --nodeps $ma_db
		ch_ok "卸载mariadb"
	else
        	echo "没有服务"
	fi
}

install_mysql()
{
	cd /usr/local/src
	echo "解压mysql"
	sudo tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
	ch_ok "解压mysql"
	rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
	ch_ok "安装common"
	rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
	ch_ok "安装libs"
	rpm -ivh mysql-community-devel-5.7.40-1.el7.x86_64.rpm
	ch_ok "安装devel"
	rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
	ch_ok "安装client"
	rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --force --nodeps
	ch_ok "安装server"
}


start_mysql()
{
	systemctl start mysqld.service
	echo "创建配置文件my.cnf 降低密码复杂度要求"
	cat > /tmp/my.cnf <<EOF
[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

#************** connection ***************
max_connections=2000
max_connect_errors=100000
max_user_connections=0

symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower-case-table-names=1
validate_password=off
default_password_lifetime=0
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF
	sudo /bin/mv /tmp/my.cnf /etc/my.cnf
		
	# 启动数据库
	# 重启mysql
	systemctl restart mysqld.service
	ch_ok "启动mysql"

}

download_mysql
un_db
install_mysql
start_mysql
echo "以下命令手动执行"
echo "查看初始密码"
echo "grep 'password' /var/log/mysqld.log"
echo "登录mysql"
echo "mysql -u root -p"
echo “修改密码”
echo "set password for root@localhost = password('1234@abc');"