mysql请升级_MySQL升级

一、概述

1、运行mysql_upgrade时需要禁用GTID,因为运行mysql_upgrade会修改mysql引擎的系统表,这不是一个事务表

2、升级到5.7官方推荐的两种方法:

a)in-place upgrade:原地升级法,利用已存在的datadir目录进行升级

b)logical upgrade:逻辑升级法,利用mysqldump导出导入进行升级

3、在实际的升级过程中很少会用到上面这两种方法,特别是第一种。通常都是通过部署一个新从库来完成升级的(主库老版本,从库目标版本),这样的话只需要在切换的时候停下机就行了

4、逻辑升级的话,先导出,接着导入,最后运行mysql_upgrade完成升级。小版本升级可以不运行mysql_upgrade,在实际的生产环境中,建议不管是小版本升级还是大版本升级都运行mysql_upgrade

二、升级环境说明

mysql-5.6.19

mysql-5.7.15

安装MySQL5.7

三、停应用和MySQL5.6.19实例并备份数据库

四、修改my.cnf配置文件并启动MySQL5.7.15

修改参数

basedir = /usr/local/mysql02                     #数据库安装目录指定到新版本的安装目录

datadir = /data/mysqldata/3306/data        #原数据库数据目录保持原来的目录即可

#只需要修改这些,其它的一般不需修改,如果需要将日志之类的转移到新目录,则按需修改

五、启动MySQL5.7.15

修改脚本里面的环境变量

$mysql_db_startup.sh

六、升级数据库(升级数据字典)

$ /usr/local/mysql02/bin/mysql_upgrade -usystem -p123456

$ /usr/local/mysql02/bin/mysqlcheck --all-databases -usystem -p123456

重启MySQL5.7.15实例

$mysql_db_shutdown.sh

$mysql_db_startup.sh

确认升级是否成功

$ mysqlplus.sh

(system@localhost) [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test               |

+--------------------+

5 rows in set (0.00 sec)

一直以来,MySQL版本升级依赖额外的工具 mysql_upgrade ,但是从 MySQL 8.0.16 开始,mysql_upgrade 工具将被废弃,取而代之的是MySQL 8.0 新的版本升级方式,升级功能集成到MySQL Server的进程mysqld中,不再依赖额外的外部工具。

这样的升级方式变更带来了哪些好处?

1.升级速度更快

2.升级过程更简单

3.升级过程更安全

4.显著减少升级步骤,更容易自动化

5.不需要重新启动MySQL Server

6.即插即用

8.0.16之前老的版本升级过程:

1.关闭MySQL Server,安装新版本二进制软件包

2.使用新版本软件包启动MySQL Server,此时Server会自动升级 数据字典表。

3.运行mysql_upgrade 工具,升级系统表和用户表。

4.重启MySQL Server,接受业务流量。

7ae2d0ee6ff1352c63c1dfa845fa6d49.png

8.0.16 版本新的升级过程:

1.关闭MySQL Server,安装新版本二进制软件包

2.使用新版本软件包启动MySQL Server,此时Server会自动检查并执行第一步升级操作,升级数据字典表。在第一步升级完成之后,Server分析系统表和用户表是否需要升级,如果指定了升级选项 upgrade (后面会详细介绍)为AUTO或者FORCE,Server将会执行第二步升级操作,对系统表和用户表进行升级,如果第二步不需要升级,Server将会跳过第二步。

相比于之前的升级方式,整个过程由2步变成了1步,不需要额外的升级工具,降低了升级耗时。

8676ee9c0aed644dedef4025acab02a3.png

新的Server选项, --upgrade

可能的取值为: NONE, AUTO, MINIMAL, FORCE,默认值为AUTO

NONE Server启动时不会执行任何的升级动作,如果发现版本不对,Server将会异常退出。这个选项只能在明确知道Server的版本与之前的版本一致时,才可以使用。

AUTO 是默认选项,Server启动时会尝试升级数据字典表和用户表。如果发现不需要升级,会自动忽略升级过程。

MINIMAL Server启动时仅仅尝试执行数据字典的升级,其他的系统表、用户表等,不会进行升级。这个选项和之前老的升级方式相同,必须再次使用mysql_upgrade 工具执行剩下的升级过程。然后需要再次重启Server。

FORCE Server启动时强制执行升级过程,不管是否已经升级过。这个行为与之前 mysql_upgrade --force 相似。

最后,如果用户对老的升级方式念念不忘,想要与之前的升级方式保持一致,只要在启动Server时,加选项 --upgrade=MINIMAL 就可以了。

https://baijiahao.baidu.com/s?id=1636203681754169101&wfr=spider&for=pc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值