MySQL 8.0 新的升级方式

一直以来,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,接受业务流量。

8.0.16 版本新的升级过程:

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

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

新的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 就可以了。

发表评论