Since that table is a MyISAM table, you must do the following:

01. In mysql, CREATE DATABASE IF NOT EXISTS mystuff;
02. service mysql stop
03. cd /var/lib/mysql/mysql
04. mv general_log.* ../mystuff
05. comment out general log from my.cnf
06. service mysql start
07. In mysql, DELETE FROM mystuff.general_log WHERE event_time<'2011-01-01';
08. service mysql stop
09. cd /var/lib/mysql/mstuff
10. mv general_log.* ../mysql
11. enable general log in my.cnf
12. service mysql start
13. In mysql, DROP DATABASE mystuff;

Does anyone know a shorter way ???

Rolando A. Edwards
MySQL DBA (SCMDBA)

155 Avenue of the Americas, Fifth Floor
New York, NY 10013
212-625-5307 (Work)
201-660-3221 (Cell)
AIM & Skype : RolandoLogicWorx
redwa...@logicworks.net
http://www.linkedin.com/in/rolandoedwards


-----Original Message-----
From: Jacek Becla [mailto:be...@slac.stanford.edu] 
Sent: Thursday, January 06, 2011 5:57 PM
To: mysql@lists.mysql.com
Subject: cleaning up general_log table?

Hello,

Is there a way to purge parts of general log table
without interrupting the server? Ideally, we would
like to transfer older logs (say copy all entries
from 2010 into a separate location, and then run:

DELETE FROM mysql.general_log WHERE event_time<'2011-01-01'

However this yields an error:

ERROR 1556 (HY000): You can't use locks with log tables.

What is a recommended way to clean up mysql.general_log?

Thanks,
Jacek

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=redwa...@logicworks.net


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to