For the past three days I have been trying various hacks and plugins that will auto-close my comments after 7 days. Unfortunately I couldn’t get anything to work
At one point I even managed to change all of my posts greater than 7 days old into private posts that wouldn’t display. I freaked out thinking that I’d wiped out my database. Trust me, I am just incompetent enough to do that “accidentally”. Then a light bulb went off in my head
Why don’t I log into mysql and check to see if the posts are still there? Lo and behold – they were! Only the post status had been set to ‘private’. Instead of logging back into WordPress, I suddenly remembered that Cosmo Boy is a database administrator. Tee hee. So I sucked up to him, even let him pick up some Pizza for lunch. Then I asked him if he knew how to run an update query. YES! YES! YES! He certainly did! So not only were we able to solve the “disappearing posts” fiasco, but we were also able to close my comments from the database, then opened all of the comments for posts written in the past 7 days! Woo Hoo! Problem solved!
So in case you feel ambitious, here is the query that we used to close all of my posts:
update `wp_posts`
set `comment_status` = ‘closed’
where `comment_status` = ‘open’
And here is the query we used to open back up the now closed comments from the specified date:
update `wp_posts`
set `comment_status` = ‘open’
where `post_date` > ’000-00-00 00:00:00′** edit 0000-00-00 to the date that you want.
Popularity: 1% [?]

Honestly, since I put in Spam Stopgap Extreme at: http://elliottback.com/wp/archives/2004/11/29/spam-stopgap-extreme/ I haven’t had one piece of comment spam even come in for moderation. You should definitely give it a shot.
You know, somewhere I got some code for denying comments or access from open proxies, where alot of the comment spam comes from. After that, it all stopped. I think I got one, just one time but that was it. Not sure where I found the code though. Maybe the WordPress help forum.
Now I am fighting referrer spam. Just as annoying.