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权限不够,把权限全打开,再试一下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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的强缓存和协商缓存
· 一文读懂知识蒸馏