基于CentOS 7 二进制安装Mysql 8.0

#!/bin/bash
# 二进制安装mysql

. /etc/init.d/functions
#mysql版本
MYSQL_version=mysql-8.0.19-linux-glibc2.12-x86_64
TAR=tar.xz
MYSQL=${MYSQL_version}.${TAR}
# mysql安装包解压路径
SRC_DIR=/usr/local

# MYSQL安装路径
MYSQL_DIR=/apps/mysql
#mysql root用户密码
MYSQL_ROOT_PASSWORD=123456

#MYSQL授权用户
Mysql_user=zabbix
#Mysql_user=wordpress


# CPU数量
CPUS=`lscpu|grep "^CPU(s)"|awk '{print $2}'`
# 系统类型
os_type=`grep "^NAME" /etc/os-release |awk -F'"| ' '{print $2}'`
# 系统版本号
os_version=`awk -F'"' '/^VERSION_ID/{print $2}' /etc/os-release`

color () {
if [[ $2 -eq 0 ]];then
    echo -e "\e[1;32m$1\t\t\t\t\t\t[  OK  ]\e[0;m"
else
    echo $2
    echo -e "\e[1;31m$1\t\t\t\t\t\t[ FAILED ]\e[0;m"
fi
}

check () {
if [ $UID -ne 0 ];then
	color "当前用户不是root,安装失败" 1
	exit 1
fi

if [ ! -e /opt/${MYSQL} ];then
	color "${MYSQL}安装包不存在" 1
	echo "请将安装包放在/opt目录下,退出!"
	exit 1
fi
}

install_mysql () {
	color "开始安装mysql数据库" 0
	yum -y install libaio numactl-libs libaio &>/dev/null
	tar -xvf ${MYSQL} -C ${SRC_DIR}
	cd ${SRC_DIR}
	ln -s ${MYSQL_version} mysql
	chown -R root:root mysql
	useradd -s /sbin/nologin -r mysql
	color "创建mysql用户" 0
	echo "PATH=${SRC_DIR}/mysql/bin:\$PATH" >/etc/profile.d/mysql.sh
	. /etc/profile.d/mysql.sh
	ln -s ${SRC_DIR}/mysql/bin/* /usr/bin/
	if [ ! -d /apps/mysql ];then
		mkdir -p /apps/mysql
	fi
	cat > /etc/my.cnf <<EOF
[mysqld]
#bind地址设置为0.0.0.0,否则默认监听IPV6的3306端口
bind-address=0.0.0.0
server-id=`hostname -I|awk -F. '{print $4}'`
datadir=/apps/mysql
#skip_host_cache
skip_name_resolve
socket=/apps/mysql/mysql.sock

log-error=/apps/mysql/mysql.log
pid-file=/apps/mysql/mysql.pid
#default_authentication_plugin=mysql_native_password

#mysqlx=1 # 默认开启,0为关闭,多实例时必须关闭
#mysqlx_port=33060 # 端口号为33060
#mysqlx_bind_address=0.0.0.0  #默认监听IPV6

[client]
socket=/apps/mysql/mysql.sock 
EOF
# 生成随机密码
mysqld --initialize --user=mysql --datadir=/apps/mysql

cp ${SRC_DIR}/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
systemctl start mysqld
systemctl is-active mysqld
if [ $? -ne 0 ];then
	color "mysql服务启动失败" 1
	exit 1
fi
# 修改root密码
mysqladmin -uroot -p`awk '/temporary password/{print $NF}' /apps/mysql/mysql.log` password ${MYSQL_ROOT_PASSWORD}
color "mysql数据库安装完成" 0

}


grant_user(){
# 创建用户,并授权
if [ ${Mysql_user}='zabbix' ];then
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database ${Mysql_user} character set utf8 collate utf8_bin;"
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create user ${Mysql_user}@'10.0.0.%' identified by '123456'"
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "grant all privileges on ${Mysql_user}.* to ${Mysql_user}@'10.0.0.%'"
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "use mysql;\
	alter user ${Mysql_user}@'%' identified with mysql_native_password by '123456';\
	flush privileges;"
else
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create database ${Mysql_user}"
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "create user ${Mysql_user}@'10.0.0.%' identified by '123456'"
	mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "grant all on ${Mysql_user}.* to ${Mysql_user}@'10.0.0.%'"
fi

}

check

install_mysql

#根据需要创建相应用户
#grant_user

exit 0
posted @ 2022-07-15 22:18  areke  阅读(230)  评论(0)    收藏  举报