基于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 @   areke  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示