首页 > 数据库 >MySQL5.6.x二进制包升级到5.7.x

MySQL5.6.x二进制包升级到5.7.x

时间:2023-07-10 19:13:33浏览次数:45  
标签:5.7 二进制 data MySQL5.6 echo -- usr mysql local

#!/bin/bash

#mysql数据库用户名
myuser="root"
#mysql数据库密码
mypwd="123456"
#数据库备份路径
dbbakdir="/data/dbbak"
#数据库目录
datadir="/data/mysql"
#系统mysql用户
sysmysqluser="mysql"
#系统mysql组
sysmysqlgroup="mysql"
#mysql5.7安装文件路径
mysqltarpath="/usr/local/src/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz"

function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
echo ""
echo "MySQL即将升级,请确认参数"
echo ""
echo "#################################################################################################"
echo "MySQL用户名:$myuser"
echo "MySQL密码:$mypwd"
echo "MySQL备份路径:$dbbakdir"
echo "MySQL数据目录:$datadir"
echo "MySQL系统用户:$sysmysqluser"
echo "MySQL系统组:$sysmysqlgroup"
echo "升级文件路径:$mysqltarpath"
echo "#################################################################################################"
echo ""

if [ ! -e $mysqltarpath ]; then
    echo "${mysqltarpath}升级文件不存在,升级终止"
    exit  6
fi

mysqlver=$(mysql -V | awk '{print $5}')


#echo $mysqlver

if version_gt "$mysqlver" "5.7.40"; then
   echo "当前运行版本为$mysqlver,高于要升级的版本."
   exit 1
fi

echo "开始备份数据库"

if [ ! -d $dbbakdir ]; then
    mkdir -p $dbbakdir
fi

resault=$(mysqldump -R -E -q --lock-all-tables --all-databases -u$myuser -p$mypwd >/$dbbakdir/all_databases.sql)

if [ ! -z $resault ]; then
    echo "备份数据库失败,升级终止"
    echo $resault
    exit 2
fi

echo "备份数据库成功,备份文件路径为: ${dbbakdir}/all_databases.sql"

echo "开始备份配置文件"

cp /etc/my.cnf ${dbbakdir}/my.cnf.bk

#判断配置文件中server-id是否为空如果是空的话需要注释掉,否则在初始化数据库的时候会失败

svrid=$(grep  server-id /etc/my.cnf)

svridval=${svrid#*=}

if [ -z $svridval ]; then 
    svrid=$(grep -n server-id /etc/my.cnf)
    svrid=${svrid%:*}
    sed -i "${svrid}s/^/#/g" /etc/my.cnf
fi


echo "即将停止MySQL服务"

/etc/init.d/mysqld stop

resault=$!

if [ ! -z $resault ]; then
    echo "停止Mysql服务失败,升级终止"
    echo $resault
    exit 3
fi


if [ ! -d /usr/local/mysql ]; then
    echo "/usr/local/mysql不存在,升级终止"
    exit 4
fi

if [  -d /usr/local/mysql5.6 ]; then
   rm -rf /usr/local/mysql5.6
fi

echo "备份旧程序"

mv /usr/local/mysql /usr/local/mysql5.6



if [  ! -d /data/mysql ]; then
    echo "/data/mysql不存在,升级终止"
    exit 5
fi

if [  -d /data/mysql5.6 ]; then
   rm -rf /data/mysql5.6
fi

mv /data/mysql /data/mysql5.6

echo "解压新程序"


tar xf /usr/local/src/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/src/

mv /usr/local/src/mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/mysql

chown $sysmysqluser.$sysmysqlgroup /usr/local/mysql -R

mkdir /data/mysql -p

chown $sysmysqluser.$sysmysqlgroup /data/mysql -R

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize

\cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

\cp -ra /data/mysql5.6/* /data/mysql/

cp /usr/local/mysql5.6/lib/libmysqlclient.so.18.1.0  /usr/local/mysql/lib/

ln -s /usr/local/mysql/lib/libmysqlclient.so.18.1.0 /usr/local/mysql/lib/libmysqlclient.so.18

cp  /usr/local/mysql5.6/lib/plugin/encrypt.so /usr/local/mysql/lib/plugin/

chown $sysmysqluser.$sysmysqlgroup /usr/local/mysql -R

/etc/init.d/mysqld start

mysqlcheck -u$myuser -p$mypwd --all-databases --check-upgrade --auto-repair

mysql_upgrade -u$myuser -p$mypwd --force

echo "重启MySQL"

/etc/init.d/mysqld restart

echo "升级完成"

 

标签:5.7,二进制,data,MySQL5.6,echo,--,usr,mysql,local
From: https://www.cnblogs.com/wuyaxiansheng/p/17542045.html

相关文章

  • Windows下MySQL 5.7.20的installer 模式安装
    一、安装Windows环境wrar_5.50.0.0_scp.exevcredist2013_x86.exeVC2015_x64.exeNDP452-KB2901907-x86-x64-AllOS-ENU.exeMicrosoft.NET4.0.zip二、installer模式安装MySQL         安装完成以后停止服务、改目录重新准备my.ini参数重新初......
  • DAS二进制专项赛
    终究还是re✌更上流一些。卸载所有的前面555,又是一个月无所事事,还当了一回fw。爬回来学习一下专项赛的题目。笔者不是个铸币,比赛的时候一点也不会。easy-noteglibc-2.23的题目,UAF很明显,直接打_free_hook就行。当然打__malloc_hook,realloc调整栈帧也可。蒻纸笔者在比赛的时候......
  • Debian 12安装配置Apache2.4 + PHP8.0 + MySQL5.7常见问题记录
    1.Apache2.4安装1.1浏览器访问提示502错误正常通过sudoaptinstallapache2安装,安装完成通过systemctlstatusapache2查看运行状态正常,但浏览器访问IP地址提示502错误解决:问题大概率出自服务器防火墙#查看防火墙规则列表sudoufwapplist#Web服务器相关条目#>WW......
  • 整数二进制奇数,偶数位的打印
    #include<stdio.h>voidPrint(intn){ inti=0; printf("偶数位:"); for(i=30;i>=0;i-=2) { printf("%d",(n>>i)&1); } printf("\n"); printf("奇数位:"); for(i=31;i>......
  • [渗透测试]—7.4 逆向工程和二进制破解技术
    在本章节中,我们将深入学习逆向工程和二进制破解技术。我们将尽量详细、通俗易懂地讲解,并提供尽可能多的实例。1.1逆向工程概述逆向工程是指从软件的二进制文件中提取信息,以了解其工作原理和设计思路的过程。逆向工程的主要目的是对软件进行分析、调试、修改等操作,以实现特定目......
  • 二进制转BCD8421码
    8421码是BCD码中最常用的编码,使用4位二进制表示十进制数0~9,即0000~1001。例如十进制数12转二进制为1100,转化为8421码为00010010(十进制为18),两个编码相减得6。二进制转8421的规则是≥10就加6,否则不加6进行校正。\[\begin{array}{r}10010B\\-1100B\\\hline0110B\end{array}......
  • 背包问题-二进制优化
    Smiling&Weeping----不讨好所有冷漠不辜负所有热爱 #[NOIP1996提高组]砝码称重 ##题目描述 设有$1\mathrm{g}$、$2\mathrm{g}$、$3\mathrm{g}$、$5\mathrm{g}$、$10\mathrm{g}$、$20\mathrm{g}$的砝码各若干枚(其总重$\le......
  • yum安装mysql时出现Public key for mysql-community-common-5.7.42-1.el7.x86_64.rpm
    问题描述:yum安装mysql时出现Publickeyformysql-community-common-5.7.42-1.el7.x86_64.rpmisnotinstalled告警,如下所示:数据库:mysql5.7.42系统:rhel7.31、问题重现[root@leo-mysql-master~]#yuminstall-ymysql-community-serverLoadedplugins:langpacks,product......
  • mysql5.7.13 使用笔记
    社区版下载地址:https://dev.mysql.com/downloads/mysql/ 安装:http://www.linuxidc.com/Linux/2016-04/130414.htm     (配置文件my.cnf在网页的最下面)更新yum源:tar解压失败:http://alany.blog.51cto.com/6125308/1422299###############################################......
  • 401. 二进制手表
    这里可以通过遍历的方式做出来。i从0~1111111111进行遍历,如果1的个数等于要求的个数tournedOn,此时进一步判断时钟位和分钟为是否符合要求,满足要求则放入结果容器中。classSolution{public:vector<string>readBinaryWatch(intturnedOn){vector<string>res;......