mysql不会启动-innoDB:数据库没有正常关闭



我办公室的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被设计为在这种情况下自动恢复,但可能需要一些时间。通常是几分钟,但如果崩溃发生时内存中有数千页修改过的数据,并且磁盘速度很慢,则可能是几个小时。

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

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

至于事故的原因,有很多可能的原因。例如,如果你突然关掉电脑,就会发生这种情况。或者,如果您终止了MySQL服务。你在另一条评论中询问了有关病毒的问题。理论上,病毒可能会故意杀死MySQL服务。

或者可能是由于MySQL中的软件错误。

没错,所有的软件都包含错误!你的老板可能会对此感到愤怒,他甚至可以要求扔掉MySQL并切换到其他数据库。但是,世界上没有一个数据库软件能够对导致崩溃的错误100%免疫。

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

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

最新更新