有时候我们会遇到服务器时间出现问题,导致论坛不能正常使用的问题如下图,下面说一下遇到这种事情的处理方法。


一、服务器时间比标准时间快
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 、不明确慢了多长时间
这种情况不能统一的进行处理。
注意:以上的操作都是通过直接操作数据库完成的,请大家务必在执行前备份操作到的数据表。