2013-02-11 92 views
2

我办公室的mysql服务器突然关闭,无法启动。我用XAMPP。 时看看它这个样子日志:mysql不会启动 - innoDB:数据库没有正常关闭

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

回答

1

您可以通过硬盘崩溃丢弃你的服务器的InnoDB表。有时您需要调整my.cnf中的设置才能启用recovery mode。通常这些表处于只读模式,因此您必须进行备份,清理MySQL数据目录,并重新初始化MySQL以mysql-install-db从头开始。

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

+0

这是可能的,如果它是由病毒引起的?因为我们最近几周遇到了conficker病毒问题......上次apache服务无法启动时,我使用防病毒扫描它,并检测到许多conficker病毒。如果conficker导致mysql服务器关闭,可能会发生这种情况。 – 2013-02-11 03:00:58

+0

如果您的服务器最终得到病毒,请擦除,重新安装,并*补丁*一切符合当前标准。不要让受感染的服务器运行并连接到您的网络。你有备份,对吧? – tadman 2013-02-11 03:48:51

7

这是崩溃后的正常输出。 InnoDB旨在在这些情况下自动恢复,但可能需要一些时间。通常是几分钟,但如果在内存中有成千上万页修改过的数据时出现崩溃,并且您的磁盘速度很慢,那么可能需要几个小时。

尽管@tadman说的话,它不一定要去垃圾数据。在大多数情况下,InnoDB可以自行恢复,而不会丢失数据。

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

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

或者,也许这是因为在MySQL软件缺陷。

没错 - 所有软件都包含错误!你的老板可能会为此感到气愤,他甚至可能会要求抛出MySQL并切换到其他数据库。但是,世界上没有任何数据库软件可以100%免于导致崩溃的错误。

+0

我试图重新启动服务器多次,MySQL服务器再次工作。这太奇怪了。有时Apache不会启动,有时候mysql不会启动。但在这种情况下,我只是想让MySQL服务器再次工作。是的,世界上没有任何数据库软件可以100%免疫bug ..我同意 – 2013-02-11 07:24:24