mysql无法启动-innoDB:数据库未正常关闭

mysql无法启动-innoDB:数据库未正常关闭,mysql,Mysql,我办公室的mysql服务器突然停机,无法启动。我用的是XAMPP。 查看日志时,显示如下所示: 130211 9:45:04 [Note] Plugin 'FEDERATED' is disabled. 130211 9:45:04 InnoDB: The InnoDB memory heap is disabled 130211 9:45:04 InnoDB: Mutexes and rw_locks use Windows interlocked functions 130211 9

我办公室的mysql服务器突然停机,无法启动。我用的是XAMPP。 查看日志时,显示如下所示:

130211  9:45:04 [Note] Plugin 'FEDERATED' is disabled.
130211  9:45:04 InnoDB: The InnoDB memory heap is disabled
130211  9:45:04 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130211  9:45:04 InnoDB: Compressed tables use zlib 1.2.3
130211  9:45:04 InnoDB: Initializing buffer pool, size = 16.0M
130211  9:45:04 InnoDB: Completed initialization of buffer pool
130211  9:45:04 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130211  9:45:04  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...

有人知道为什么会这样吗?我真的需要建议,我的老板很生气D

您通过硬崩溃破坏了服务器的InnoDB表。有时您需要调整my.cnf中的设置才能启用。表通常处于只读模式,因此您必须进行备份,清除MySQL数据目录,然后使用
MySQL install db
重新初始化MySQL,从头开始


这应该作为备份任何和所有重要数据的提醒。

这是崩溃后的正常输出。InnoDB设计用于在这些情况下自动恢复,但可能需要一些时间。通常是几分钟,但如果崩溃发生时内存中有数千页修改过的数据,并且磁盘速度较慢,则可能是几小时

不管@tadman怎么说,它不一定会毁掉你的数据。InnoDB在大多数情况下都可以自行恢复,而不会丢失数据

InnoDB有可能在崩溃中受到更严重的破坏,也有可能无法在所有情况下恢复。但是您显示的错误日志输出没有显示任何无法恢复的损坏报告。这些消息是在崩溃后启动MySQL服务时的正常输出。等待它完成,直到它显示“准备好连接”,然后连接并执行一些特殊查询,以检查数据在您看来是否正确

至于坠机原因,有很多可能的原因。例如,如果您突然关闭计算机电源,就会发生这种情况。或者如果你杀死了MySQL服务。你在另一篇评论中询问了病毒。理论上,病毒可能会故意杀死MySQL服务

或者可能是由于MySQL中的软件缺陷


没错,所有的软件都有bug!你的老板可能会为此发火,他甚至会要求你扔掉MySQL,转而使用其他数据库。但是,世界上没有一种数据库软件对导致崩溃的漏洞100%免疫。

如果它是由病毒引起的,这是可能的吗?因为我们在过去几周有一个conficker病毒问题。。。上次apache服务无法启动时,我用防病毒软件扫描了它,它检测到了许多conficker病毒。如果conficker导致mysql服务器宕机是可能的?如果您的服务器最终感染了病毒,请按照当前标准擦除、重新安装和修补所有内容。不要让受感染的服务器继续运行并连接到您的网络。你们有备份,对吗?我试着重启服务器好几次,mysql服务器又开始工作了。这太奇怪了。有时Apache无法启动,有时mysql无法启动。但在这种情况下,我只想mysql服务器再次工作。是的,世界上没有一个数据库软件100%不受bug的影响。我同意,堆栈溢出是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。