最近、1年前に切り替えた古いデータベースの記事に対してトラックバックSPAM(トラックバックスパム)がくるようになりました。で、ほとんど普通にトラバを受けることもなくなってきたので、一括で閉じる方法を考えていました。コメントスパム対策で自動的にコメントを閉じるスクリプトなどが以前に公開されていましたが、ウチではなぜかうまく動きませんでした。で、自分でやったの直接MySQLのデータベースの該当項目を置き換えるという方法。一瞬で置き換え完了で、あとはリビルドするだけ。ただこれにもちょっとした壁がありました。
というのは当時はデータベースで直接コマンドを打って処理する方法だったのですが、「プロンプトを出して接続してテーブル切り替えて」などと結構接続や入力する手間もありました。
普段、エラーなどでデータベースを触る時はphpMyAdminという秀逸なものを使っているのですが「なんで置き換え処理が出来ないんだろう」と思っていたのです。(もちろん勉強不足)
で、今回のトラバスパム対策用に「ついでにphpMyAdminでできないのか」と調べたところ、今回は見つけました。
まず、phpMyAdminでアクセスします。
サーバー: localhost データベース: weblog テーブル : mt_entry
↑それぞれは該当するサーバーとデータベースを指定してください。
テーブルは処理をする項目が入っている今回は「mt_entry」を選択します。
次にメニューの
[構造][表示][SQL][検索][追加][エクスポート][操作][空にする][削除]
から[SQL]を選びます。
すると
「データベース weblog にSQL 照会を実行する」というタイトルと、
入力フォームが表示され
「SELECT * FROM `mt_entry` WHERE 1」
と書かれているはずです。
その部分を
UPDATE mt_entry SET entry_allow_pings = REPLACE(entry_allow_pings , "1", "0")
(改行してるかもしれませんが上は一行です)と書き換えて実行するだけです。
コレの要約として
「テーブルmt_entryのentry_allow_pingsに対して"1(受付する)"という項目を全て"0(受付不可)"に置き換える」
となります。
ですので、これをコメントの場合も応用できます。
あとはリビルドすれば完了です。
phpMyAdminでもコマンドができることを今更ながらにしった不勉強者でした(^^;