5.7 源码编译安装脚本
#!/bin/bash##********************************************************************#Author: Wuvikr#QQ: 744123155#Date: 2020-12-01#FileName Mysql5.7_src_install.sh#URL: http://www.wuvikr.top#Description The test script#Copyright (C): 2020 All rights reserved#********************************************************************PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHCPU=`lscpu | sed -rn 's/^CPU\(s\)[^0-9]+([0-9]+)/\1/p'`Rpcsvc_Package=rpcsvc-proto-1.4.2.tar.xzBoost_Package=boost_1_59_0.tar.bz2Mysql_Package=mysql-5.7.30.tar.gzRpcsvc_Dirname=${Rpcsvc_Package%.tar*}Boost_Dirname=${Boost_Package%.tar*}Mysql_Dirname=${Mysql_Package%.tar*}Boost_Install_Dir=/usr/localMysql_Install_Dir=/apps/mysqlMysql_Data_Dir=/data/mysqlecho_colors() { echo -e "\e[1;$1m$2\e[0m"}# 编译安装rpcsvcinstall_rpcsvc() { [ -f $Rpcsvc_Package ] && tar xvf $Rpcsvc_Package &> /dev/null || echo_colors 31 "当前目录没有检测到${Rpcsvc_Package}包,请提前准备好安装包!" cd $Rpcsvc_Dirname ./configure make -j $CPU && make install}# 编译安装mysqlinstall_mysql() { # 切换回上一级目录 cd .. # 检测安装包 [ -f $Boost_Package ] && tar xvf $Boost_Package -C $Boost_Install_Dir &> /dev/null || echo_colors 31 "当前目录没有检测到${Boost_Package}包,请提前准备好安装包!" [ -f $Mysql_Package ] && tar xvf $Mysql_Package &> /dev/null || echo_colors 31 "当前目录没有检测到${Mysql_Package}包,请提前准备好安装包!" # 安装相关依赖包 yum -y install make cmake gcc gcc-c++ ncurses ncurses-devel bison openssl-devel # 创建用户及用户组 groupadd -r mysql useradd -r -g mysql -s /sbin/nologin mysql #准备mysql目录 mkdir $Mysql_Data_Dir chown mysql.mysql $Mysql_Data_Dir # 编译安装 cd $Mysql_Dirname cmake . \ -DCMAKE_INSTALL_PREFIX=$Mysql_Install_Dir \ -DMYSQL_DATADIR=$Mysql_Data_Dir \ -DSYSCONFDIR=/etc \ -DMYSQL_UNIX_ADDR=$Mysql_Data_Dir/mysqld.sock \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DENABLED_PROFILING=1 \ -DMYSQL_TCP_PORT=3306 \ -DWITH_DEBUG=0 \ -DWITH_BOOST=${Boost_Install_Dir}/${Boost_Dirname} make -j $CPU && make install}# 配置和初始化Mysqlconfiguration() { # 设置环境变量 echo "PATH=${Mysql_Install_Dir}/bin:$PATH" > /etc/profile.d/mysql.sh # 准备配置文件 cat > /etc/my.cnf << EOF[mysqld]datadir=$Mysql_Data_Dirskip_name_resolve=1socket=${Mysql_Data_Dir}/mysql.socklog-error=${Mysql_Data_Dir}/mysql.logpid-file=${Mysql_Data_Dir}/mysql.pid[client]default-character-set=utf8mb4socket=${Mysql_Data_Dir}/mysql.sock[mysql]default-character-set=utf8mb4socket=${Mysql_Data_Dir}/mysql.sock[mysql]auto-rehashprompt="\\u@\\h [\\d]>"EOF # 初始化数据库 ${Mysql_Install_Dir}/bin/mysqld --initialize-insecure --user=mysql --basedir=${Mysql_Install_Dir} --datadir=${Mysql_Data_Dir} # 准备服务脚本 cp ${Mysql_Install_Dir}/support-files/mysql.server /etc/init.d/mysqld # 启动mysql chkconfig --add mysqld service mysqld start}install_rpcsvcinstall_mysqlconfigurationecho_colors 32 "${Mysql_Dirname}安装成功!"
mysqldump 备份脚本
#!/bin/bash##********************************************************************#Author: Wuvikr#QQ: 744123155#Date: 2021-01-22#FileName Mysql_Backup.sh#URL: http://www.wuvikr.top#Description The test script#Copyright (C): 2021 All rights reserved#********************************************************************PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHUSER=rootPASS=744123ALL_BACKUP_DIR=/data/backup/allSINGLE_BACKUP_DIR=/data/backup/singleINCREMENT_BACKUP_DIR=/data/backup/incrementDATE=$(date +%F)DATABASE_NAME=buyeeBINLOG_DIR=/data/mysql/binlog# 完全备份all(){ if [ ! -d $ALL_BACKUP_DIR/$DATE ];then mkdir -p $ALL_BACKUP_DIR/$DATE fi mysqldump -u$USER -p$PASS -A -F --single-transaction --master-data | gzip > $ALL_BACKUP_DIR/$DATE/all.sql.gz}# 单个数据库备份single(){ if [ ! -d $SINGLE_BACKUP_DIR/$DATE ];then mkdir -p $SINGLE_BACKUP_DIR/$DATE fi mysqldump -u$USER -p$PASS -B $DATABASE_NAME -F --single-transaction --master-data | gzip > $SINGLE_BACKUP_DIR/$DATE/$DATABASE_NAME.sql.gz}# 增量备份increment(){ if [ ! -d $INCREMENT_BACKUP_DIR/$DATE ];then mkdir -p $INCREMENT_BACKUP_DIR/$DATE fi mysqladmin -u$USER -p$PASS flush-logs cp `ls $BINLOG_DIR/mysql-bin.[0-9]* | head -n -1 | sort -rg | head -n 1` $INCREMENT_BACKUP_DIR/$DATE/}case $1 inall) all ;;single) single ;;increment) increment ;;*) echo 'Usage: Mysql_Backup.sh all|single|increment'esac
xtrabackup 备份脚本
#!/bin/bashBTIME=`date +%F-%H_%M_%S`Filename=`ls -tr /yingpan/dalanya/backup/ | head -1`Number=`ls /yingpan/dalanya/backup/ | wc -l`if (($Number>=5))then /usr/bin/rm -f /yingpan/dalanya/backup/$Filenamefi/usr/local/xtrabackup/bin/innobackupex --user=root --password='Qh$#!_201906' --parallel=4 --compress-threads=4 --no-timestamp --stream=tar ./ 2>/yingpan/dalanya/backup/log/${BTIME}_error.log | gzip - > /yingpan/dalanya/backup/dalanya_quan_$BTIME.tar.gztail -1 /yingpan/dalanya/backup/log/${BTIME}_error.log | grep "completed OK"if [ `echo $?` -eq 0 ]; then echo "xtrabackup Executed Successfully !!! ---- ${BTIME}" >> /yingpan/dalanya/backup/log/xtrabackup.logelse echo "xtrabackup failed !!! --- ${BTIME}" >> /yingpan/dalanya/backup/log/xtrabackup.logfi
MySQL 启动脚本
#!/bin/bash##********************************************************************#Author: Wuvikr#QQ: 744123155#Date: 2021-06-03#FileName mysqld.sh#URL: http://www.wuvikr.top#Description The test script#Copyright (C): 2021 All rights reserved#********************************************************************USER='root'PASSWD='744123'CMD_PATH='/opt/mysql/bin/'CONF='/etc/my.cnf'SOCKET='/data/mysql/mysql.sock'# 颜色输出function echo_colors() { echo -e "\e[1;$1m$2\e[0m"}function start_mysqld() { if [ ! -e "$SOCKET" ];then echo_colors 32 "Starting MySQL... \n" ${CMD_PATH}mysqld_safe --defaults-file=${CONF} &>/dev/null & else echo_colors 33 "MySQL is running... \n" exit fi}function stop_mysqld(){ if [ ! -e "$SOCKET" ];then echo_colors 33 "MySQL is stopped... \n" exit else echo_colors 32 "Stoping MySQL... \n" ${CMD_PATH}mysqladmin -u${USER} -p${PASSWD} -S ${SOCKET} shutdown &>/dev/null fi}function restart_mysqld(){ echo_colors 33 "Restarting MySQL... \n" stop_mysqld sleep 2 start_mysqld}case $1 instart) start_mysqld ;;stop) stop_mysqld ;;restart) restart_mysqld ;;*) echo_colors 31 "Usage: $0 start|stop|restart \n" ;;esac