我在XAMPP中启动MYSQL时遇到问题。 Apache启动正常,但随后MYSQL报告意外关闭。
我被引导删除C:\xampp\mysql\data\ibdata1
,之后它可以工作,但删除了我的所有数据库,并且在我重新启动计算机后MYSQL再次停止工作。
我浏览了错误日志,这就是我所看到的:
[错误] InnoDB:尝试打开以前打开的表空间。 以前的表空间mysql / innodb_index_stats使用空格ID:2 at filepath:。\ mysql \ innodb_index_stats.ibd。无法打开表空间 yiicrud / customer在文件路径中使用空格ID:2: 。\ yiicrud \ customer.ibd InnoDB:错误:无法打开单表 表空间文件。\ yiicrud \ customer.ibd InnoDB:我们不继续 崩溃恢复,因为表可能成为InnoDB:腐败如果我们 无法将InnoDB日志中的日志记录应用于它。 InnoDB:要解决 问题并启动mysqld:InnoDB:1)如果有权限 文件中的问题和mysqld不能InnoDB:打开文件,你 应该修改权限。 InnoDB:2)如果不需要表, 或者你可以从备份,InnoDB恢复它:然后你可以删除 .ibd文件和InnoDB会做一个正常的InnoDB:崩溃恢复和 忽略那个表。 InnoDB:3)如果文件系统或磁盘是 坏了,你无法删除InnoDB:.ibd文件,你可以设置 innodb_force_recovery> my.cnf InnoDB中的0:强制InnoDB到 继续崩溃恢复。
答案 0 :(得分:0)
将这些文件移动(不要删除)到另一个文件夹中:
innodb_index_stats.frm <br> innodb_table_stats.frm <br> slave_worker_info.frm <br> slave_master_info.frm <br> slave_relay_log_info.frm <br>
和.ibd文件具有相同的文件名。
尝试启动MySQL。
答案 1 :(得分:0)
非常感谢大家。
我能够解决它。看来数据库是在更高版本中创建的,并且与这个新版本的xampp不兼容,所以我再次创建了数据库并将表格导入其中。以前我也使用create语句导入数据库。
从萨尔曼的评论中得出了这个想法。
答案 2 :(得分:0)
在my.cnf中添加此行为我工作:
innodb_force_recovery = 1