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 @   秋来叶黄  阅读(652)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示