The mysql_upgrade client is now deprecated(mysql_upgrade客户机现在已经弃用)

Easter79
• 阅读 762
  • 登录数据库后执行以下命令 mysql> show databases;

  • 报错 ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

  • 在网上找到的解决办法 mysql_upgrade -u root -p

  • 输入后,显示如下信息:

    The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.

    To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade.

    The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand.

    It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.


    mysql_upgrade客户机现在已经弃用。升级客户端现在执行的操作由服务器完成。    升级,请启动新的MySQL二进制旧数据目录。修复用户表是自动完成的。升级后不需要重启。    升级过程将自动启动运行一个新的MySQL二进制和另外一个年纪大的数据目录。为了避免意外升级,请使用MySQL二进制——升级=没有选项。还提供了选项,升级=力运行服务器升级需求序列。    有可能服务器升级失败由于很多原因。在这种情况下,升级序列将再次在接下来的MySQL服务器开始运行。如果服务器升级失败多次,服务器可以启动——升级=最小选项启动服务器没有执行升级顺序,从而允许用户手动纠正这个问题。

没办法,继续查

得知

  • MySQL 8.0.16开始 mysql_upgrade 升级程序已经废弃

    一、官方为什么变更升级方式?

    1. 升级速度更快

    2. 升级更简单

    3. 安全性更好

    4. 减少升级步骤,方便自动化

    5. 不需要重启 MySQL 6. 即插即用

    二、新旧方式升级流程对比 在 MySQL 8.0.16 之前:

    1. 关闭 MySQL,替换新的二进制 MySQL

    2. 启动 MySQL,让服务器升级 DD(数据字典)表

    3. 运行 mysql_upgrade,更新系统表和用户表

    4. 加载新的帮助表

    5. 重启 MySQL

    从 MySQL 8.0.16 开始:

    1. 关闭 MySQL,替换新的二进制 MySQL

    2. 启动 MySQL,升级 DD(数据字典)表和系统表、用户表和帮助表

    升级的时间和操作都会大幅度缩短,操作步骤也减少了很多,更方便了用户。

    三、关于 MySQL 8.0.16 的新的升级方式 看看该如何使用新的升级姿势?

    在 mysqld 额外添加了一个新的选项 --upgrade。可选值为 NONE,AUTO,MINIMAL,FORCE。

    姿势是这样的:

    /usr/local/mysql/bin/mysqld --upgrade=NONE

    新的选项都代表什么?

    NONE:不尝试进行升级

    AUTO:默认选项,MySQL 进行数据字典升级和服务升级

    MINIMAL:仅升级数据字典

    FORCE:强制升级,类似旧的 mysql_upgrade –force

    MySQL 8.0.16 新的升级方式,总体来说分为2个步骤。

    1. 升级数据字典(DD)

    2. 服务器升级:升级 MySQL 系统表、升级用户表、升级 sys 表、升级帮助更新表

    可能出现的问题:

    1. 升级数据字典:原子性操作。如果操作失败,则根据目录可以回滚回来。

    2.升级系统表、用户表:可以从备份还原中恢复。

    个人建议,针对升级:

    1. 使用新的版本,尤其是 MySQL 8.0 系列。每个版本都有新特性,还有bug的修复,定期小版本升级会使你的 MySQL 更加稳定。

    2. 阅读新版本的Release。

    3.最后,升级之前要做好备份,以便升级失败回滚使用。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k