0

我在 XAMPP 中启动 MYSQL 时遇到问题。Apache 启动正常,但 MYSQL 不断报告意外关闭。

我被引导删除C:\xampp\mysql\data\ibdata1,之后它就可以工作了,但是这会删除我的所有数据库,并且 MYSQL 在我重新启动机器后再次停止工作。

我浏览了错误日志,这就是我所看到的:

[错误] InnoDB:试图打开以前打开的表空间。以前的表空间 mysql/innodb_index_stats 在文件路径:.\mysql\innodb_index_stats.ibd 使用空间 ID:2。无法打开使用空间 ID 的表空间 yiicrud/customer: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 文件,可以在my.cnf InnoDB: 中设置innodb_force_recovery > 0 并在此处强制InnoDB 继续crash recovery。

4

4 回答 4

1

在 my.cnf 中添加这一行对我有用:

innodb_force_recovery = 1
于 2017-12-11T18:50:41.887 回答
0

这个页面有一个解决方案:XAMPP/MySQL: could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL

将这些文件移动(不要删除)到另一个文件夹中:

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。

于 2013-11-20T01:00:25.333 回答
0

非常感谢大家。

我有能力解决它。看来数据库是在更高版本中创建的,并且与这个新版本的 xampp 不兼容,所以我再次创建了数据库并将表导入其中。以前我也使用 create 语句导入数据库。

从萨尔曼的评论中得到了这个想法。

于 2013-12-19T12:11:07.357 回答
0

尝试这个

  1. XAMMP\mysql\data文件夹重命名为您希望的任何其他名称(例如data_old
  2. XAMMP\mysql名称中创建一个新文件夹data并复制其中的所有文件,包括ibdata1
  3. 关闭所有正在运行的程序并重新启动 XAMPP

无需从中复制文件,data_old但如果您之前已经构建过数据库,那么您可以从data_old.

解决方案可能会再次出现。如果是这样,那么您必须将端口更改为其他内容3308,例如配置设置以及phpMyAdmin/config.inc.php.

如果问题仍然存在,那么最好更改使用该端口的应用程序3306并在 XAMPP 中设置默认设置。

于 2021-12-23T16:12:37.457 回答