XAMPP – MySQL意外closures

当我打开XAMPP并点击启动MySQLbutton,它给了我一个错误。 我刚刚开始,但现在不工作。

12:19:12 PM [mysql]试图启动MySQL应用程序…
12:19:12 PM [mysql]检测到状态改变:正在运行
12:19:13 PM [mysql]检测到状态变化:停止
12:19:13 PM [mysql]错误:MySQL意外关机。
12:19:13 PM [mysql]这可能是由于端口被阻塞,缺less依赖关系,
12:19:13 PM [mysql]不正确的权限,崩溃或者其他方法关机
12:19:13 PM [mysql]按Logsbutton查看错误日志并检查
12:19:13 PM [mysql] Windows事件查看器获取更多线索
12:19:13 PM [mysql]如果你需要更多的帮助,请复制并发布这个
12:19:13 PM [mysql]整个日志窗口在论坛上

这里是错误日志的内容:

2013-08-02 12:19:12 4536 [注]插件'FEDERATED'被禁用。
2013-08-02 12:19:12 F64 InnoDB:警告:使用innodb_additional_mem_pool_size是DEPRECATED。 这个选项可能会在将来的版本中被删除,以及选项innodb_use_sys_malloc和InnoDB的内部内存分配器。
InnoDB:InnoDB内存堆被禁用
InnoDB:Mutexes和rw_locks使用Windows互锁function
2013-08-02 12:19:12 4536 [注意] InnoDB:压缩表使用zlib 1.2.3
2013-08-02 12:19:12 4536 [注意] InnoDB:不使用CPU crc32指令
2013-08-02 12:19:12 4536 [注意] InnoDB:初始化缓冲池,大小= 16.0M
InnoDB:完成缓冲池的初始化
2013-08-02 12:19:12 4536 [注] InnoDB:支持最高的文件格式是梭子鱼。
InnoDB:ibdata文件中的日志序列号0和0与ib_logfiles!中的日志序列号1616798不匹配。
2013-08-02 12:19:12 4536 [注意] InnoDB:数据库没有正常关机!
2013-08-02 12:19:12 4536 [注意] InnoDB:启动崩溃恢复。
InnoDB:读取.ibd文件中的表空间信息…

最重要的错误信息是:

2013-08-02 12:19:12 4536 [错误] InnoDB:
试图打开一个以前打开的表空间。
以前的tablespace mysql / innodb_table_stats在filepath: 。\ mysql \ innodb_table_stats.ibd中使用空间ID:1。
无法在filepath: 。\ xat \ payments.ibd中打开使用空间ID为1的表空间xat / payments

日志的其余部分:

InnoDB:错误:无法打开单表表空间文件。\ xat \ payments.ibd
InnoDB:我们不会继续崩溃恢复,因为表可能会变成
InnoDB:如果我们无法将InnoDB日志中的日志logging应用到InnoDB中,则会损坏。
InnoDB:解决问题并启动mysqld:
InnoDB:1)如果文件存在权限问题,mysqld不能
InnoDB:打开文件,你应该修改权限。
InnoDB:2)如果表不需要,或者你可以从备份中恢复,
InnoDB:那么你可以删除.ibd文件,而InnoDB会做一个正常的
InnoDB:崩溃恢复并忽略该表。
InnoDB:3)如果文件系统或磁盘损坏,无法删除
InnoDB:.ibd文件,你可以在my.cnf中设置innodb_force_recovery> 0
InnoDB:强制InnoDB在这里继续崩溃恢复。

这些错误的原因是什么?如何纠正?

嘿,我只是这样做,它的工作:

  1. 退出 Xampp服务器
  2. 转到您的C:\xampp\mysql\data目录
  3. 删除 ibdata1文件
  4. 重新启动 xampp服务器

它应该工作

在mysqlconfiguration文件(my.ini)的[mysqld]部分下面添加下面一行,然后重启apache web服务器和mysql服务。

 [mysqld] innodb_force_recovery = 4 
  1. mysql / data /
  2. 删除所有的随机文件(除了实际的数据库文件夹)
  3. 重新启动ApacheMySQL

它应该修复它。

在尝试启动mysql时,我在C:\xampp\mysql\data\mysql_error.log遇到了同样的错误。

 2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/slave_relay_log_info uses space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open tablespace test_database/test_table which uses space ID: 3 at filepath: .\test_database\test_table.ibd 

你必须仔细阅读错误。 这说test_database是防止启动mysql。

你可以吹走违规的数据库,这些步骤解决了这个问题:

  1. 确保mysql和xampp完全closures。
  2. 转到您安装mysql的目录,我的是: C:\xampp\mysql\data
  3. 您应该看到一个名称为您创build的数据库的文件夹。 我的是test_database
  4. 在其他地方创build一个名为C:\xampp\mysql\data\mysql\backuptablespace的新文件夹
  5. 将有问题的数据库表文件夹拖放(不要删除)到备份目录。
  6. 尝试再次启动MySQL。 对我来说,如预期的那样,在1秒钟内开始。

如果不起作用,请将文件放回原来的位置,然后返回到开始位置。

如果您不想删除数据库并且没有备份:

如果你没有表数据的备份,并且mysql不会启动,因为某些东西被破坏了,你将不得不使用消除的过程来猜测你的方式,确切地说,你做了什么损坏它。 按着这些次序:

  1. 整个C:\xampp\的克隆,并将其存储在一个安全的地方,以便您可以回到你开始的地方。
  2. 使用“二进制search”的方法来试图find在mysql数据库中损坏的项目。 它可以是文件,表格,数据库,或用户或任何东西。
  3. 删除整个数据库,看看是否允许mysql启动。 如果是这样,那么把数据库放回去,尝试删除一些表。 如果没有,那么尝试一下其他的东西,直到它开始。
  4. 尝试从C:\xampp\mysql\data\mysql删除这些文件:db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. 当你启动mysql的时候,试着把东西放回去,直到你发现你添加的东西阻止它启动。 其中一个好处就是你可以学习到mysql如何工作。

核select:

你搞砸了MySQL服务器。 卸载并重新安装XAMPP应该消除损坏。

我也面临这个问题,这就是我解决问题的方法。
1.确保xampp不在子目录下。 例如,它应该是C:\ xampp
2.您可能需要以pipe理员身份运行应用程序。

希望这会工作!

当你没有以pipe理员身份运行XAMPP时,经常closuresMySQL会导致损坏,这意味着你必须修复或删除你的表。 为了避免这种情况,您需要以pipe理员身份运行XAMPP,或者使用正确的命令提示符方法closuresMySQL。

你可以按照Kratos的build议删除ibdata1 ,但是这可能会导致数据库损坏,因为其他数据库仍在/mysql/data/文件夹中。 在我的情况下,这个残留数据阻止了我成功安装WordPress。

清除损坏的一种更简单的方法是恢复整个/mysql/data/文件夹。 Windows具有内置的文件夹版本控制 – 右键单击/mysql/data/并selectRestore previous versions 。 然后,您可以删除文件夹的当前内容,并将其replace为旧版本的内容。

附录:为了确保您不要忘记以pipe理员身份运行XAMPP,您可以右键单击XAMPP快捷方式,转至Properties ,然后selectAdvanced ,最后Run as administrator

我的Xampp MySQL的工作如下:

 01.Go to mysql/data/ directory 02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file 03. restart xampp server 

configuration – > Apache->打开httpd.conf。 searchListen或80,更新监听端口为8081保存并重启服务器。 哦,并closuresSkype,如果你有。

确保系统时间正确。 不知怎的,我的地雷被设定为2040年,纠正了date解决了这个问题。

这是我做的。 我重新启动了我的电脑。 接下来我运行services.msc。 我停止了MySQL服务,然后重新启动它。 重新启动Xampp服务器。

对于我来说,我放弃了占用80端口的Skype,然后Apache在80端口上快乐地跑,比我跑Skype的时候多了一个端口。

在我的情况下,我同步我的mysql数据和htdocs到dropbox,我只需要删除mysql / data文件夹和子文件夹中冲突的文件。 冲突的文件可以通过它的名字来标识,dropbox会告诉你。 它已经解决了我的问题。

为此,您需要单击Modules Services下的x选项,并安装MYSQL服务。 然后开始服务。 干得好。

上面没有解决scheme为我工作。 那我下面做了:

我删除了C:\ xampp \ mysql \ data \目录下的所有文件,除了这个目录下的文件夹。 它工作得很好,但我以前的数据库现在不工作。 所以如果你不在乎,会在phpmyadmin中删除所有以前的数据库。

如果崩溃消息是“mysql.exe已停止工作”。 只要以pipe理员身份运行xampp-control.exe即可解决您的问题。

如果以上任何一种情况都不起作用,请重新安装Xampp目录并重新安装Xampp。 那肯定有效!