mysql8.0.29升级mysql8.0.36

因为收到安全管理部门的消息,凡是Oracle MySQL Server <=8.0.35 Oracle MySQL Server <=8.2.0 有多个高危漏洞,而现在生产的系统数据库是8.0.29版本,因此想着直接升级到最新版本8.0.36修复漏洞。从网上和官网看了一些教程,因为不涉及大版本更新,所以直接采用替换文件夹的升级方式。这种升级方式有个前提是我的数据文件、日志文件 都不在mysql里边。如果数据文件和日志文件都在mysql里边可以采用覆盖老版本文件的方式进行升级。

升级前的准备

1、全量备份数据文件,万一直接替换升级失败,采用备份文件的方式进行升级。

使用mysqldump 备份整个数据库

2、下载mysql压缩包。根据自己的系统选择。直接在官网下载的 地址 MySQL :: Download MySQL Community Server

开始升级

1、上传文件到服务器,解压文件

tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

2、设置mysql的关闭模式(我就因为没有执行这个语句导致 升级时出现错误)

SET GLOBAL innodb_fast_shutdown = 1; -- fast shutdown
SET GLOBAL innodb_fast_shutdown = 0; -- slow shutdown

设置成1 或者 0都可以 ,我的就是因为没有设置,默认是2,导致关闭的时候存在中间日志文件,启动报错。

3、关闭数据服务

这个有多种方法关闭,我的因为是mysql8.0 我直接用root用户登录mysql 服务器,使用 shutdown; 命令关闭。 大家也可以用 service mysqld stop  等命令关闭。

4、复制新的mysql文件夹,修改权限

sudo cp -r mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/
sudo mv /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql8_0.36

加了sudo是因为我的主机没有root账号,使用sudo提升权限,改下文件名,注意标注上版本。还有一个新的数据库组和用户权限要和以前的一致,大家根据查询进行修改 chown -R xxx:xxx mysql8_0.36

5、修改配置文件

找到老版本数据库my.cnf文件,并修改其中的basedir地址为新的地址

basedir=/usr/local/mysql8_0.36

如果大家的数据文件和其他信息都在mysql目录里,在第4步执行复制的时候先把老版本的mysql文件夹全量备份一下,然后直接复制本新版本覆盖老版本文件夹

6、启动数据库

/usr/local/mysql8_0.36/bin/mysqld --defaults-file=xxx/xxx/my.cnf --socket=xxx/xxx/mysql.sock --user=root &

xxx替换成目录文件就可以   正常情况下可以成功启动

升级时遇到的问题:

1、因为mysql关闭时采用的冷关闭,导致启动时报错提示

[ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 8.0.29, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
[ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

简单来说就是关闭时冷关闭  数据文件里有部分中间log数据文件是老版本的,新版本启动时读取直接报错,处理方法就是找到datadir  数据库数文件里的ib_logfile0,ib_logfile1 等文件rm  ib_logfile*

然后再启动数据库就可以

  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值