客户反馈业务功能无法使用,排查日志发现sql异常,提示表不存在,于是去数据库查看show table,表是存在的,但是select * from table;提示表不存在。
引起这个问题的原因有多种,暂未确定具体原因(一般是数据备份或迁移导致元数据文件损坏异常),
解决思路是删除数据有问题的表或者数据库,因为里面只有一张不需要备份的数据表,可以直接删除,(如果数据需要备份且重要,请备份数据后,尝试重启mysql解决)删除库和表都是失败的:
解决方案
1.先进入mysql,查找到数据文件所在目录
mysql> show variables like ‘datadir’;
±--------------±----------------+
| Variable_name | Value |
±--------------±----------------+
| datadir | /var/lib/mysql/ |
进入该目录下可以看到多个数据库的文件夹,比如aaa,bbb,进入有问题的aaa目录下,
rm xx_xxx_task_Info.frm 删除掉数据文件(如果数据需要备份,记得先备份)
再次进入mysql,创建数据库和表结构(有备份数据的记得导入),表恢复正常访问
mysql表存在却提示找不到表
最新推荐文章于 2023-12-06 22:58:14 发布