MySQL一键部署脚本 centos7.9+MySQL5.7.39

本文介绍了如何在CentOS7.9系统上使用一键脚本快速部署MySQL5.7.39数据库。重点是离线安装xtrabackup及其依赖包的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash


### WARING: 
#1.执行此脚本请确保【/data/mysqldata】目录无其他文件,初始化会清空此目录 
#2.运行此脚本需内存8G以上,小于8G需调整my.cnf配置,否则无法启动mysql服务
#3.部署后mysql初始root密码为123456,部署完毕后可登录mysql自行修改
###


#####
#MySQL5.7.39数据库自动安装脚本
# Version:      1.0
# Author:       zzs
# Date:         2022-10-09
#####

#sed -i 's/\r//' install_mysql.sh

#安装包 脚本存放路径
# mkdir -p /data/package
installPackage=/data/package

#mysql 安装路径
installPath=/data/mysqldata
 
 
#my.cnf配置文件
mysqlcnf=/etc/my.cnf
 
 
#mysql serverid需要设置唯一的id,比如 ip+3位数字
mysqlServerid=100001
 
  
#mysql 端口
mysqlPort=3306


version=5.7.39




# 校验是否为ROOT用户
CheckRoot()
{
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to install"
    exit 1
fi
clear
}
 
#优化文件最大打开数
DependFile()
{
 
 
if [ $( cat /etc/security/limits.conf  | grep "mysql" | wc -l )  -lt 1 ] ;then
cat >>/etc/security/limits.conf << EOF
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
mysql soft nproc 65536
mysql hard nproc 65536
mysql soft nofile 65536
mysql hard nofile 65536
EOF
 
 
fi
 
 
if [ -e /etc/security/limits.d/20-nproc.conf ];then
if [ $( cat /etc/security/limits.d/20-nproc.conf  | grep "mysql" | wc -l )  -lt 1 ] ;then
cat >>/etc/security/limits.d/20-nproc.conf<<EOF
mysql       soft    nproc     unlimited
EOF
 
 
fi
fi
 
 
if [ -e /etc/security/limits.d/90-nproc.conf ];then
if [ $( cat /etc/security/limits.d/90-nproc.conf  | grep "mysql" | wc -l )  -lt 1 ] ;then
cat >>/etc/security/limits.d/90-nproc.conf<<EOF
mysql       soft    nproc     unlimited
EOF
 
 
fi
fi
 
 
if [ -e /etc/sysctl.conf ];then
fs_file=$( cat /proc/sys/fs/file-max)
if [ ${fs_file} -lt 65535 ] ;then
sed -i "s/${fs_file}/65535/g" /etc/sysctl.conf
/usr/sbin/sysctl -p 
 
 
fi
fi
 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
 
echo -e "\e[31m #1.配置基础资源 \e[0m"
 
 
}
 
 
#解压mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar包,初始化环境
DecompressionTar()
{


#防止环境缺少libaio导致mysql安装失败
libaio=`rpm -qa | grep libaio`
if [ -z "${libaio}" ]; then
    rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
fi

#卸载mariadb,防止与安装冲突
mariadb=`rpm -qa | grep mariadb`
if [ $? -eq 0 ];then
    rpm -e $mariadb --nodeps
fi


#卸载mysql,防止与安装冲突
ori_mysql=`rpm -qa | grep mysql-community-`
rpm -e $ori_mysql --nodeps
rm -rf $installPath


cd $installPackage
tar -xvf mysql-$version-1.el7.x86_64.rpm-bundle.tar
 
echo -e "\e[31m #2.软件已解压,环境已初始化 \e[0m"
 
 
}

 
 
#创建mysql 数据目录
createMysqlFolder()
{

 
mkdir -p $installPath/data
mkdir -p $installPath/logs/bin_log
mkdir -p $installPath/logs/relay
mkdir -p $installPath/logs/undo_log
mkdir -p $installPath/tmp




 
echo -e "\e[31m #3.mysql 数据目录已准备完成 \e[0m"
 
 
}
 
#安装mysql
install_mysql()
{
cd $installPackage

# 安装mysql 建议按顺序安装:common --> libs --> clients --> server

rpm -ivh mysql-community-common-$version-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-$version-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-$version-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-$version-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-$version-1.el7.x86_64.rpm

echo -e "\e[31m #4.mysql安装完成 \e[0m"
}


#创建my.cnf
MakeMyCnf()
{
 
 
if  [ -e ${mysqlcnf} ] ;then
    mv  ${mysqlcnf}  ${mysqlcnf}"`date +%Y%m%d%H%M`"
    #rm ${mysqlcnf}
fi
 

cat >${mysqlcnf}<<EOF


# For advice on how to change settings please see
# # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[client]
port =  $mysqlPort
socket = /var/lib/mysql/mysql.sock
default_character_set = utf8mb4

[mysqld]
#skip-grant-tables
skip-ss
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LOST_9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值