电脑宕机重启后xampp中的mysql打不开了,看log发现是innodb造成的。不想正在调试的几个项目有数据丢失,在网上找了几个解决方案
Error: could not open single-table tablespace file .\mysql\innodb_index_stats.ibd
解决办法:
第一种
- 进入data/mysql目录
- 把下面的文件剪切到别的文件夹(任意位置),比如backup
innodb_index_stats.frm
innodb_index_stats.ibd
innodb_table_stats.frm
innodb_table_stats.ibd
slave_master_info.frm
slave_master_info.ibd
slave_relay_log_info.frm
slave_relay_log_info.ibd
slave_worker_info.frm
slave_worker_info.ibd
- 启动mysql
这种方法尝试后仍然无法启动
第二种(需要重新建库)
- 打开my.ini
添加配置:innodb_force_recovery = 1
- 启动mysql
备份数据库
- 关闭mysql
进入mysql目录,删除ib_logfile*,删除ibdata*(重启后可能遇到数据库表打不开的情况,把这几个文件再复制回原处试试)
删除出问题的数据库mysql/data/数据库文件夹
innodb_force_recovery = 0
- 开启mysql
创建数据库
执行备份脚本
我在第2步进入phpmyadmin备份完数据库,尝试读写都正常,然后关闭mysql,恢复my.ini的配置,重新启动就成功了
评论
本文评论功能已关闭。