0

我办公室的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

4

2 回答 2

7

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

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

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

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

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

没错——所有软件都包含错误!你的老板可能会生气,他甚至可以要求放弃 MySQL 并切换到其他数据库。但是世界上没有任何数据库软件可以 100% 避免导致崩溃的错误。

于 2013-02-11T03:08:07.567 回答
1

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

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

于 2013-02-11T02:55:28.587 回答