误删idb,别慌
由于使用docker磁盘已满,导致建立表过程中,数据的插入存在问题,进而导致后续启动时读取该表的idb存在问题,导致无法启动
现在提供一种思路处理该种情况
innodb_force_recovery 选项可以让你在某些类型的错误发生时仍然启动 MySQL。这个选项有 6 个不同的级别,从 1 到 6,级别越高,MySQL 会忽略的错误越多。
你可以在 MySQL 的配置文件中设置 innodb_force_recovery 选项。这个文件通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf。在 [mysqld] 部分,你可以添加以下行:
[mysqld] innodb_force_recovery = 1
然后,尝试再次启动 MySQL:
sudo service mysql start
正常启动后,登录数据库删除该表,并重新建立该表即可。不过数据不一定能恢复。
最好的建议 是 直接删除此库的所有表 然后再把级别改成0 之后重新建数据库(因为可以删表但是库报错你删不掉)