有時候我們會遇到伺服器時間出現問題,導致論壇不能正常使用的問題如下圖,下面說一下遇到這種事情的處理方法。


一、伺服器時間比標準時間快
1 、明確快了多長時間
UPDATE cdb_members SET lastpost=lastpost-時間段 WHERE lastpost>UNIX_TIMESTAMP(); UPDATE cdb_searchindex SET dateline=dateline-時間段 WHERE dateline>UNIX_TIMESTAMP();
這兩條 SQL 分別解決伺服器時間比標準時間快導致的使用者不能發帖、不能搜尋的問題,「時間段」 為伺服器比標準時間提前的時間段,比如伺服器比標準時間快了一個小時,這裡的時間段就是 3600 。
UPDATE cdb_threads SET dateline=dateline-時間段 WHERE dateline>UNIX_TIMESTAMP(); UPDATE cdb_threads SET lastpost=lastpost-時間段 WHERE lastpost>UNIX_TIMESTAMP(); UPDATE cdb_posts SET dateline=dateline-時間段 WHERE dateline>UNIX_TIMESTAMP();
這三條分別解決引起的主題發表時間、主題最後回覆時間、帖子發表時間問題。
2 、不明確快了多長時間
UPDATE cdb_members SET lastpost=unix_timestamp() WHERE lastpost>UNIX_TIMESTAMP(); UPDATE cdb_searchindex SET dateline=unix_timestamp() WHERE dateline>UNIX_TIMESTAMP();
這兩條 SQL 分別解決伺服器時間比標準時間快導致的使用者不能發帖、不能搜尋的問題。
二、伺服器時間比標準時間慢
1 、明確慢了多長時間
update cdb_threads set dateline=dateline+時間段 where tid> 主題 id; update cdb_threads set lastpost=lastpost +時間段 where tid> 主題 id; update cdb_posts set dateline=dateline +時間段 where pid> 帖子 id;
這三條分別解決引起的主題發表時間、主題最後回覆時間、帖子發表時間問題。 SQL 中的主題 id 、帖子 id 可以透過對比 cdb_threads 中的 tid 和 dateline 、 cdb_posts 表中 pid 和 dateline 得到。
2 、不明確慢了多長時間
這種情況不能統一的進行處理。
注意:以上的操作都是透過直接運算元據庫完成的,請大家務必在執行前備份操作到的資料表。