00. 我被嚇到了, 之前一天 2~3 篇 Spam, 感覺還可以接受, 後來用 .htaccess 把常來留垃圾留言的 IP 封了, 接下就都沒 Spam, 又覺得無聊, 就把封 IP 的設定取消。昨天心血來潮去封了 2 個 IP, 結果今天一次出現 25 則 Spam, 所以決定啟用一下先前介紹的用簡單數學題目防止垃圾留言(Math Comment Spam Protection Plugin)。
01. 之前 comment 的 id 一次都跳個 2~3 號, 算是可接受範圍, 但這次一次跳 25 號, 感覺挺不是滋味的, 所以就 Google 找答案。在眾多的搜尋結果中, 突然有溫庭筠的夢江南中提到的過盡千帆皆不是的感覺, 因為大部分都是關於解決 WordPress 文章不連號的的方法, 不過皇天不負苦心人, 終於讓我找到答案了。
ALTER TABLE tablename DROP id; ALTER TABLE tablename ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST
02. 注意事項
a. 請務必先備份資料庫
b. 請不要舉一反三, 想說 comment 可以變成連號, 那 post 可以嗎? 就把 wp_comments 改成 wp_posts, 然後...。因為, comment 和 post 存在著對應關係, 如果 post 的 id 修改了, 那 comment 就天下大亂了。
c. 如果有使用跟 Comment 相關的插件, 那就更要備份了, 因為出問題的機率高些, 不過我使用 WP Ajax Edit Comments 沒什麼問題, 但住不代表著可以不用備份喔。
03. 如果在安裝 WordPress 您沒有更改, table_prefix 為其它的值, 那可以直接使用下面的 Sql 語法, 不然要做些修正, 把出現的兩個 wp_comments, 前面的 wp_ 換成您用的 table prefix 即可。
如果您 wp-config.php 裡的 $table_prefix = 'wp_';
ALTER TABLE wp_comments DROP comment_ID; ALTER TABLE wp_comments ADD comment_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST
04. 結果
a. 原始

b. 修改

c. 檢討: 現在已經連號, 且依 id 做排序, 不知您有沒有發現時間較早的未必拿到的是較前面的 id。

05. 如果您沒這需求, 就來欣賞一下, 溫庭筠 夢江南
梳洗罷,獨倚望江樓。過盡千帆皆不是,斜暉脈脈水悠悠,腸斷白蘋洲。
Ref:
01. 让MySQL自增长字段号从不连续变成连续的



October 4th, 2009 at 3:32 PM
顶一下,如果有上千条spam涌入,那这ID跳的就厉害了
October 7th, 2009 at 3:47 PM
原來spam不顯示也會吃掉號碼的啊
這個好..我有很多spam可以整理一下
謝謝!