目录
一、背景
二、经过
三、解决
四、总结
一、背景
今天在学习Redis时,想到这么一个应用场景:如果我们将经常查询的数据先存到Redis中,然后每当我们要从数据库查询数据时,先查询Redis缓存,有则直接获取;当数据库对该条数据有更新操作时,则删除Redis中对应的缓存,以此来提升应用的查询性能。
于是我想到MySQL8.0之后已经移除了缓存功能,而在其之前,MySQL还保留了缓存功能,影响查询性能,而我用的是MySQL5.7.35版本的,所以我决定升级数据库版本到8.0。
二、经过
- 我先对原来的数据库进行了全库备份(错误就在此处!),备份完之后,经过了一系列操作,将MySQL8.0装好了,也卸载干净了原来的版本。
- 打开SQLyog,导入备份sql文件,开始执行,迁移原来的数据库。
- 此时,提示错误如下图:此时已经无法正常恢复原来的数据库了!!!!
三、解决
一阵慌乱之后,经过一番查阅资料,发现,全库备份是行不通的,必须单库备份,逐个导入,如此方为上策。于是我在另一台电脑上装了跟原先数据库一样的版本(必须一样,否则无法执行全库备份文件!!!!)然后执行了全库备份文件,结果让我震惊!——成功了!!!,数据库全部恢复了,于是我赶紧开始逐个将数据库备份出来(这里一定要是单库备份!!!),忙活了好一会,备份了七八个文件,然后再拿到自己的电脑上,执行了单库的备份文件,结果再次震惊!——备份成功了!于是数据库便从MySQL5.7.35迁移到了8.0上。
四、总结
低版本MySQL向高版本MySQL迁移数据库,一定要进行单库备份,不可全库备份,否则会导致迁移失败!!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)