今天来公司启动项目发现有报错,找找原因原来是上周新建的几张表找不到了。问同事说是把公司库还原成了现场的库,ohhh,吓一跳。冷静一想,幸亏有备份的习惯,有执行脚本在丢了也不怕,好吧,开始执行脚本,但是在执行脚本的时候依然有报错,查了表是不存在的但是却报创建的表已经存在错误。该怎么办呢?
百度一番找到解决办法:
1.在数据库执行showglobalvariableslike"%datadir%";
2.去这个目录下面找表名文件,在删除了该.ibd文件文件后再重新创建表就没有问题了。
果然ok如下:
解决问题了该解释下这个原因了。
ibd是MySQL数据文件、索引文件,无法直接读取。 frm是表结构文件,可以直接打开。 大概原因就是,由于之前库里有这个表,数据库会自动建立索引,恢复现场表的时候不会将索引文件删除,只会删除对应的表。所以导致新增无法新增同名的表。
下次遇到这个问题就不着急了,归根到底记住两点,1.任何写好在本地已执行的sql先备份,2.遇到类似问题来这里查看下解决方式就ok。
不积跬步无以至千里,不积小流无以成江海,一起学习每天进步一点点!!!
领取专属 10元无门槛券
私享最新 技术干货