侧边栏壁纸
  • 累计撰写 61 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MySQL8.0离线安装脚本

已删除用户
2024-04-18 / 0 评论 / 0 点赞 / 54 阅读 / 3748 字
温馨提示:
本文最后更新于 2024-04-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

MySQL8.0离线安装脚本

注意:

  • 需要提前下载二进制包到安装目录
#!/bin/bash
#
#Date            2022-11-19
#Filename        install_offline_mysql-8.0.28-linux-glibc2.12-x86_64.sh
set -eu
. /etc/init.d/functions

color='echo -e \E[01;31m'

end='\E[0m'

# 设置mysql root用户密码
MYSQL_ROOT_PASSWD=123456
# mysql 版本
MYSQL_VERSION=mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

check(){
    ${color}安装前环境检查......${end}

    # 判断当前用户是否是root用户,不是则退出安装
    if [ ${UID} -ne 0 ];then
        action "当前用户不是root,安装失败!" false
        exit
    fi
    
    # 判断/usr/local/mysql目录是否存在,存在则exit
    if [ -e /usr/local/mysql ];then
        ${color}"mysql已经安装,安装失败!"${end}
        exit
    fi
    
    # 判断二进制程序包是否存在
    if [ ! -e ${MYSQL_VERSION} ];then
        ${color}"文件不存在,安装失败!"${end}
        ${color}"请检查脚本以及主机环境,然后再次尝试安装。即将退出安装流程!"${end}
        exit
    else
        ${color}"安装前环境检查完毕,环境要求满足!"${end}
    fi
}
install_mysql(){
    ${color}"开始安装mysql......"${end}
    # 安装依赖
    yum install -y -q libaio numactl-libs
    # 解压缩
    tar xf ${MYSQL_VERSION} -C /usr/local/
    cd /usr/local/
    MYSQL_FILE=`echo ${MYSQL_VERSION} | sed -nr 's/^(.*[0-9]).*/\1/p'`
    ln -s /usr/local/${MYSQL_FILE} /usr/local/mysql
    chown -R root.root /usr/local/mysql/
    id mysql &> /dev/null || { useradd -s /sbin/nologin -r mysql ; action "创建mysql用户"; }
    
    # 环境变量
    echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
    . /etc/profile.d/mysql.sh
    ln -s /usr/local/mysql/bin/* /usr/bin/
    # 配置文件
    cat > /etc/my.cnf <<-EOF
[mysqld]
server-id=1
log-bin
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF
    [ -d /data ] || mkdir /data
    mysqld --initialize --user=mysql --datadir=/data/mysql
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chkconfig --add mysqld
    chkconfig mysqld on
    service mysqld start
    [ $? -ne 0 ] && { $color"数据库启动失败,退出!"$end;exit; }
    sleep 3
    MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.log`
    mysqladmin -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWD} &>/dev/null
    action "数据库安装完成"
}
# 调用函数
check
install_mysql
0

评论区