mysql版本升级

在还原线上的备份时,本地的数据库会报错,提示类似于插入数据的时候,有中文的地方,出错。反复对比下来,发现是本地的版本比线上的低,本地是5.7.1x,线上的是5.7.2x,所以准备直接升级到5.7的最高版本5.7.31。

升级过程中遇到了一点问题,这里记录一下

升级步骤

  • 下载安装文件

  • 开始安装,安装程序会自动识别,标明这次是升级更新

  • 执行到最后一步,询问是否备份并且检测数据库,这里因为少了步骤,当时也不清楚,就没有执行,而是选择下面的跳过

  • 升级完成,打开数据库发现,原来的数据库少了

  • 打开数据库数据目录下的err文件,发现如下报错

[Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name.  Please run mysql_upgrade
  • 执行mysql_upgrade -u root -p,提示如下报错,这可能因为升级版本之间有默认数据库表的字段变了,导致访问用户名等配置信息出错
cannot setup server variables
  • 在数据库配置文件my.ini中的[mysqld]下面添加skip-grant-tables,然后重启数据库

  • 直接执行mysql_upgrade

  • 等待运行完成

  • 重启数据库

  • 看一下原来的数据有没有回来

  • 如果没有回来,再看一下err文件,可能有如下报错

[Note] Aborted connection 3 to db: 'pay' user: 'root' host: 'localhost' (Got an error reading communication packets)

这是因为你的root@localhost权限不够,把权限全打开,再试一下。

posted @ 2020-09-18 15:15  秋来叶黄  阅读(644)  评论(0编辑  收藏  举报