網站主機無預警換 IP

上禮拜的某天,在寫完一篇文章後,突然網站就開不了會自己轉到粉絲頁 (我在主機設定如果 404 error 的情況下會導到網站粉絲頁),然後後台也到不了了,都直接呈現 404 狀態,我嚇到以為被 hack 了,趕緊登後台看什麼狀況,網頁後台進得去可是 FTP 就不行了,這時我大概心理就有底應該換 IP 位址了,看了一下主機的詳細資料,果真換到一個新的 IP,在 domain name hosting 的 DNS manager 換上了新 ip 後,再用 WhatMyDNS 看全球的更新狀態,很滿意的地圖上都已經變成了新的 IP 位址,打上網址還是不行,於是又清掉了瀏覽器的 cache,還把當時實驗室的 router 重新開機,最後最後終於讓我連上了! (謝天謝地)

Godaddy 居然換 IP 也沒先通知,倒是在做這些 check 之前就先寫了封客服信去詢問,後來問題解決後,他才回說 DNS 要換上新的 IP..

資料表炸裂

第二個問題照推測應該是和上面是相關的 (時間點比上面的早大概一天),同樣是被嚇到的狀況,網站進去結果所有文章都消失了,進到 wp 後台也沒有任何一篇文章記錄 (這驚悚程度實在太大了),我真的想說完了完了被駭定了,趕緊到後台看資料庫狀態,從 phpmyadmin 去 query 文章內容那個資料表,回傳了下面的訊息: SHOW FULL FIELDS FROM `wp_example` ; MySQL 傳回了:

#145 – Table 『./accountID_exDB/wp_example’ is marked as crashed and should be repaired

根據網友的指示,原來只要修復表就可以了,在 phpadmin 內看這篇文章,或是用 terminal 去下下面指令:

mysqlcheck —all-databases —auto-repair -o -u root -p

資料表會爛掉根據網友的說法是因為 MyISAM 儲存引擎的緣故,「忽然斷電,關機使得硬碟的快取沒有寫回,那 MyISAM 一定會炸掉」,我想找個時間還是來把 MyISAM 換成 InnoDB (另外,要建立關聯資料表也必須是 InnoDB 格式)