1.mysq5.6基于二进制包一键安装脚本
[root@rocky8-2 ~]# cat install_mysql5.6.sh#!/bin/bash##*************************************************************************************************#Author: Raymond#QQ: 88563128#Date: 2022-09-05#FileName: install_mysql5.6.sh#URL: raymond.blog.csdn.net#Description: install_mysql5.6 for centos 7/8/stream 8 & ubuntu 18.04/20.04 & Rocky 8#Copyright (C): 2022 All rights reserved#*************************************************************************************************SRC_DIR=/usr/local/srcCOLOR="echo -e \\033[01;31m"END='\033[0m'MYSQL_URL=https://mirrors.cloud.tencent.com/mysql/downloads/MySQL-MYSQL_VERSION='5.6/'MYSQL_FILE='mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz'MYSQL_ROOT_PASSWORD=123456os(){OS_ID=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' etc/os-release`OS_RELEASE_VERSION=`sed -rn '/^VERSION_ID=/s@.*="?([0-9]+)\.?.*"?@\1@p' etc/os-release`}check_file(){cd ${SRC_DIR}if [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> dev/null;thenrpm -q wget &> dev/null || yum -y install wget &> dev/nullfiif [ ! -e ${MYSQL_FILE} ];then${COLOR}"缺少${MYSQL_FILE}文件"${END}${COLOR}'开始下载MYSQL二进制安装包'${END}wget ${MYSQL_URL}${MYSQL_VERSION}${MYSQL_FILE} || { ${COLOR}"MYSQL二进制安装包下载失败"${END}; exit; }else${COLOR}"${MYSQL_FILE}文件已准备好"${END}fi}install_mysql(){[ -d usr/local/mysql ] && { ${COLOR}"数据库已存在,安装失败"${END};exit; }${COLOR}"开始安装MySQL数据库..."${END}cd ${SRC_DIR}${COLOR}'开始安装MYSQL依赖包'${END}if [[ ${OS_RELEASE_VERSION} == 8 ]] &> dev/null;thenyum install -y libaio perl-Data-Dumper autoconf ncurses-compat-libs &> dev/nullelif [[ ${OS_RELEASE_VERSION} == 7 ]] &> dev/null;thenyum install -y libaio perl-Data-Dumper &> dev/nullelseapt update &> dev/null;apt -y install numactl libaio-dev libtinfo5 &> dev/nullfitar xf ${MYSQL_FILE} -C usr/local/MYSQL_DIR=`echo ${MYSQL_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`ln -s usr/local/${MYSQL_DIR} usr/local/mysqlid mysql &> dev/null || { useradd -s sbin/nologin -r mysql ; ${COLOR}"创建mysql用户"${END}; }chown -R mysql.mysql usr/local/mysql/[ -d data/mysql ] || mkdir -p data/mysql &> dev/nullchown -R mysql.mysql data/mysql/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/ &> /dev/nullcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod a+x /etc/init.d/mysqldecho 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.shcat > /etc/my.cnf <<-EOF[mysqld]socket=/tmp/mysql.sockuser=mysqlsymbolic-links=0datadir=/data/mysqlinnodb_file_per_table=1log-binpid-file=/data/mysql/mysqld.pid[client]port=3306socket=/tmp/mysql.sock[mysqld_safe]log-error=/var/log/mysqld.logEOFif [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;thenchkconfig --add mysqldelseupdate-rc.d -f mysqld defaultsficat > /lib/systemd/system/mysqld.service <<-EOF[Unit]Description=mysql database serverAfter=network.target[Service]Type=notifyPrivateNetwork=falseType=forkingRestart=noTimeoutSec=5minIgnoreSIGPIPE=noKillMode=processGuessMainPID=noRemainAfterExit=yesSuccessExitStatus=5 6ExecStart=/etc/init.d/mysqld startExecStop=/etc/init.d/mysqld stopExecReload=/etc/init.d/mysqld reload[Install]WantedBy=multi-user.targetAlias=mysqld.serviceEOFsystemctl daemon-reloadsystemctl enable --now mysqld &> /dev/null[ $? -ne 0 ] && { ${COLOR}"数据库启动失败,退出!"${END};exit; }${COLOR}"数据库安装完成"${END}}mysql_secure(){/usr/local/mysql/bin/mysql_secure_installation <<EOFy${MYSQL_ROOT_PASSWORD}${MYSQL_ROOT_PASSWORD}yyyyEOF}main(){oscheck_fileinstall_mysqlmysql_secure}main
2.mysq5.7基于二进制包一键安装脚本
[root@rocky8-3 ~]# cat install_mysql5.7.sh#!/bin/bash##*************************************************************************************************#Author: Raymond#QQ: 88563128#Date: 2022-09-05#FileName: install_mysql5.7.sh#URL: raymond.blog.csdn.net#Description: install_mysql5.7 for centos 7/8/stream 8 & ubuntu 18.04/20.04 & Rocky 8#Copyright (C): 2022 All rights reserved#*************************************************************************************************SRC_DIR=/usr/local/srcCOLOR="echo -e \\033[01;31m"END='\033[0m'MYSQL_URL=https://mirrors.cloud.tencent.com/mysql/downloads/MySQL-MYSQL_VERSION='5.7/'MYSQL_FILE='mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz'MYSQL_ROOT_PASSWORD=123456os(){OS_ID=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`OS_RELEASE_VERSION=`sed -rn '/^VERSION_ID=/s@.*="?([0-9]+)\.?.*"?@\1@p' /etc/os-release`}check_file(){cd ${SRC_DIR}if [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;thenrpm -q wget &> /dev/null || yum -y install wget &> /dev/nullfiif [ ! -e ${MYSQL_FILE} ];then${COLOR}"缺少${MYSQL_FILE}文件"${END}${COLOR}'开始下载MYSQL二进制安装包'${END}wget ${MYSQL_URL}${MYSQL_VERSION}${MYSQL_FILE} || { ${COLOR}"MYSQL二进制安装包下载失败"${END}; exit; }else${COLOR}"${MYSQL_FILE}文件已准备好"${END}fi}install_mysql(){[ -d /usr/local/mysql ] && { ${COLOR}"MySQL数据库已存在,安装失败"${END};exit; }${COLOR}"开始安装MySQL数据库..."${END}${COLOR}'开始安装MYSQL依赖包'${END}if [[ ${OS_RELEASE_VERSION} == 8 ]] &> /dev/null;thenyum -y install libaio perl-Data-Dumper ncurses-compat-libs &> /dev/nullelif [[ ${OS_RELEASE_VERSION} == 7 ]] &> /dev/null;thenyum -y install libaio perl-Data-Dumper &> /dev/nullelseapt update &> /dev/null;apt -y install numactl libaio-dev libtinfo5 &> /dev/nullficd ${SRC_DIR}tar xf ${MYSQL_FILE} -C /usr/local/MYSQL_DIR=`echo ${MYSQL_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`ln -s /usr/local/${MYSQL_DIR} /usr/local/mysqlid mysql &> /dev/null || { useradd -s /sbin/nologin -r mysql ; ${COLOR}"创建mysql用户"${END}; }chown -R mysql.mysql /usr/local/mysql/echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.shcat > /etc/my.cnf <<-EOF[mysqld]server-id=1log-bindatadir=/data/mysqlsocket=/data/mysql/mysql.socklog-error=/data/mysql/mysql.logpid-file=/data/mysql/mysql.pid[client]socket=/data/mysql/mysql.sockEOF[ -d /data/mysql ] || mkdir -p /data/mysql &> /dev/nullchown -R mysql.mysql /data/mysqlmysqld --initialize --user=mysql --datadir=/data/mysqlcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldif [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;thenchkconfig --add mysqldelseupdate-rc.d -f mysqld defaultsficat > /lib/systemd/system/mysqld.service <<-EOF[Unit]Description=mysql database serverAfter=network.target[Service]Type=notifyPrivateNetwork=falseType=forkingRestart=noTimeoutSec=5minIgnoreSIGPIPE=noKillMode=processGuessMainPID=noRemainAfterExit=yesSuccessExitStatus=5 6ExecStart=/etc/init.d/mysqld startExecStop=/etc/init.d//mysqld stopExecReload=/etc/init.d/mysqld reload[Install]WantedBy=multi-user.targetAlias=mysqld.serviceEOFsystemctl daemon-reloadsystemctl enable --now mysqld &> /dev/null[ $? -ne 0 ] && { ${COLOR}"数据库启动失败,退出!"${END};exit; }MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.log`mysqladmin -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD} &>/dev/null${COLOR}"MySQL数据库安装完成"${END}}main(){oscheck_fileinstall_mysql}main
3.mysq8.0基于二进制包一键安装脚本
[root@rocky8-4 ~]# cat install_mysql8.0.sh#!/bin/bash##*************************************************************************************************#Author: Raymond#QQ: 88563128#Date: 2022-09-05#FileName: install_mysql8.0.sh#URL: raymond.blog.csdn.net#Description: install_mysql8.0 centos 7/8/stream 8 & ubuntu 18.04/20.04 & Rocky 8#Copyright (C): 2022 All rights reserved#*************************************************************************************************SRC_DIR=/usr/local/srcCOLOR="echo -e \\033[01;31m"END='\033[0m'MYSQL_URL=https://mirrors.cloud.tencent.com/mysql/downloads/MySQL-MYSQL_VERSION='8.0/'MYSQL_FILE='mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz'MYSQL_ROOT_PASSWORD=123456os(){OS_ID=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`OS_RELEASE_VERSION=`sed -rn '/^VERSION_ID=/s@.*="?([0-9]+)\.?.*"?@\1@p' /etc/os-release`}check_file(){cd ${SRC_DIR}if [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;thenrpm -q wget &> /dev/null || yum -y install wget &> /dev/nullfiif [ ! -e ${MYSQL_FILE} ];then${COLOR}"缺少${MYSQL_FILE}文件"${END}${COLOR}'开始下载MYSQL二进制安装包'${END}wget ${MYSQL_URL}${MYSQL_VERSION}${MYSQL_FILE} || { ${COLOR}"MYSQL二进制安装包下载失败"${END}; exit; }else${COLOR}"${MYSQL_FILE}文件已准备好"${END}fi}install_mysql(){[ -d /usr/local/mysql ] && { ${COLOR}"MySQL数据库已存在,安装失败"${END};exit; }${COLOR}"开始安装MySQL数据库..."${END}${COLOR}'开始安装MYSQL依赖包'${END}if [[ ${OS_RELEASE_VERSION} == 8 ]] &> /dev/null;thenyum -y install libaio perl-Data-Dumper ncurses-compat-libs &> /dev/nullelif [[ ${OS_RELEASE_VERSION} == 7 ]] &> /dev/null;thenyum -y install libaio perl-Data-Dumper &> /dev/nullelseapt update &> /dev/null;apt -y install numactl libaio-dev libtinfo5 &> /dev/nullficd ${SRC_DIR}tar xf ${MYSQL_FILE} -C /usr/local/MYSQL_DIR=`echo ${MYSQL_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`ln -s /usr/local/${MYSQL_DIR} /usr/local/mysqlid mysql &> /dev/null || { useradd -s /sbin/nologin -r mysql ; ${COLOR}"创建mysql用户"${END}; }chown -R mysql.mysql /usr/local/mysql/echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.shcat > /etc/my.cnf <<-EOF[mysqld]server-id=1log-bindatadir=/data/mysqlsocket=/data/mysql/mysql.socklog-error=/data/mysql/mysql.logpid-file=/data/mysql/mysql.pid[client]socket=/data/mysql/mysql.sockEOF[ -d /data/mysql ] || mkdir -p /data/mysql &> /dev/nullchown -R mysql.mysql /data/mysqlmysqld --initialize --user=mysql --datadir=/data/mysqlcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldif [ ${OS_ID} == "CentOS" -o ${OS_ID} == "Rocky" ] &> /dev/null;thenchkconfig --add mysqldelseupdate-rc.d -f mysqld defaultsficat > /lib/systemd/system/mysqld.service <<-EOF[Unit]Description=mysql database serverAfter=network.target[Service]Type=notifyPrivateNetwork=falseType=forkingRestart=noTimeoutSec=5minIgnoreSIGPIPE=noKillMode=processGuessMainPID=noRemainAfterExit=yesSuccessExitStatus=5 6ExecStart=/etc/init.d/mysqld startExecStop=/etc/init.d//mysqld stopExecReload=/etc/init.d/mysqld reload[Install]WantedBy=multi-user.targetAlias=mysqld.serviceEOFsystemctl daemon-reloadsystemctl enable --now mysqld &> /dev/null[ $? -ne 0 ] && { ${COLOR}"数据库启动失败,退出!"${END};exit; }MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.log`mysqladmin -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD} &>/dev/null${COLOR}"MySQL数据库安装完成"${END}}main(){oscheck_fileinstall_mysql}main
文章转载自Raymond运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




