2013-02-11 94 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