20070813 不明不白...好詭異..

今天,www.bubbleliao.idv.tw 這台server不明不白的mysql就掛點了
下午我正在整理幾張照片,也順便在改寫我的自動備份script時
瞬間,整個gallery跟lifetype都沒反應了... @@
我還以為是browser的關係,重新整理了一下....結果,竟然沒反應 =,=
可是我的ssh連線還是正常的阿,可見SERVER沒有死掉
service httpd status看一下,恩...apache還正常
service mysqld status看一下,哇勒!掛了 =,=
service mysqld restart......[失敗] OH~MY GOD !
最近是犯小人喔.. >"<
這下可好,先來瞧看看是怎回事 cat /var/log/mysqld.log
結果先是出現一堆 0000000000(大概有幾千個 "0" 吧~)
然後又出現下面這一串... = =
8 m / ;InnoDB: End of page dump
070813 17:03:42 InnoDB: Page checksum 3531860110, prior-to-4.0.14-form checksum 3627583341
InnoDB: stored checksum 2581190800, prior-to-4.0.14-form stored checksum 3627583 341
InnoDB: Page lsn 0 254777028, low 4 bytes of lsn at page end 254777028
InnoDB: Page number (if stored to page already) 7,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 7.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also
http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
070813 17:03:42 mysqld ended
說實在的,我實在沒心情靜下心來看到底講些什麼
只知道看起來不太妙,連到所提示的網址去看
http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
恩.....大概就是說,我的mysql掛點,要做recovery吧 @@
這個網頁對我唯一的幫助,就是叫我在 /etc/my.cnf 裡頭加上 innodb_force_recovery = 4
然後重新啟動mysql去把資料庫修復或者備份.... =,=
我的資料庫是每天都有備份,所以倒也不太擔心備份,所以...
當下就決定把mysql移除重裝,然後再把備份的 *.sql dump回去就好
yum remove mysql*
然後重新 yum install mysql*
結果,very good!還是一樣,它就是不理我
我在 innodb_force_recovery = 4 這個組態底下可以start mysql
所以心想那就乾脆把 mysql 還有 information_schema 這兩個資料庫也做掉
用指令模式,給我跳出一堆警告訊息,用phpmyadmin竟然不給我刪
最後用 webmin,雖然也是出現一堆警告訊息,但是還是讓我刪了...
再試一次好了,yum remove mysql* ; yum install mysql*
哇勒!還是不行ㄋㄟ~ @_@
真的火大了,我又 yum remove mysql* 了一次
然後 mv /var/lib/mysql /var/lib/mysql-back
沒想到,重新安裝的時候,竟然mysql還會去找 mysql-back這個目錄
我真是被嚇到!這麼厲害? 連我偷偷把目錄重新命名,系統也知道? =,=
不死心,這次換成 mv /var/lib/mysql-back /var/lib/1234
接著 yum remove mysql* ; yum install mysql*
哈哈!這樣它就認不出來了耶!好好玩~ ^O^
(迷:是在興奮個什麼勁阿 =,= )
總之,這樣一來, mysql 、 information_schema 這兩個資料庫就正常了 ^O^
把帳號密碼改一改,再把備份的sql丟回去,YA! 起死回生啦~
經過這虛驚一場,我仔細想想,究竟發生了什麼事?
查了各個log,也沒看到異常的狀況,大概是運氣背吧~就這麼巧給我遇上了?
難道是 lifetype 或者 gallery 剛好有什麼程式在運作的時候會觸動mysql 5.0.x 的 bug ?
反正不管怎麼樣,至少是恢復正常了...收拾好東西準備回家都已經快七點了
本來中午過後還想著回家的路上要買貓餅乾的,這一高興,竟也忘記買就回到家
晚上跟老爸一起看一次這次金門之旅的相片光碟
老爸突然說到,今天他有拜拜,我還在想今天是要拜什麼?
原來....今天是農曆七月初一.....唉唷~~我的mysql....該不會跟這有關係吧?!

留言