记录一下升级mysql小版本遇到坑的过程,由于数据量比较多,因此备份时最大的几个表没有备份(备份了数据文件.idb文件),但是有一个表没有备份到,导致后面浪费很久的时间恢复数据
正确的升级命令如下:
rpm -Uvh mysql-community-common-5.7.41-1.el7.x86_64.rpm
rpm -Uvh mysql-community-libs-5.7.41-1.el7.x86_64.rpm
rpm -Uvh mysql-community-devel-5.7.41-1.el7.x86_64.rpm
rpm -Uvh mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm
rpm -Uvh mysql-community-client-5.7.41-1.el7.x86_64.rpm
rpm -Uvh mysql-community-server-5.7.41-1.el7.x86_64.rpm
第一个误操作,由于本人升级时把命令-Uvh写成了-ivh,导致升级失败;
第二个误操作,通过.idb文件恢复数据时,创建的表结构和.idb文件的表结构不一致(因多人开发,测试环境被改了导致和正式环境不一致),导致执行alter table 表名称IMPORT TABLESPACE;命令失败
第三个误操作,因没有给.idb文件给mysql授权以及读文件的权限,导致执行alter table 表名称IMPORT TABLESPACE;命令失败
正确通过.idb恢复数据过程
1、创建表(一定要与.idb文件保持一样的表结构)
2、执行alter table 表名称 discard TABLESPACE;删除当前.ibd文件。
3、把备份的.ibd文件放回到新数据库目录
4、给.ibd文件授权给mysql并给读取的权限
5、执行alter table po_td_consumer1 IMPORT TABLESPACE;绑定表空间
6、若通过以上操作不能恢复数据,可能是表结构不一样,可通过安装升级前的mysql版本,把.idb文件拷贝到新安装的数据库进行恢复
标签:rpm,Uvh,64,版本,mysql,idb,el7 From: https://www.cnblogs.com/lucl/p/17372033.html