日志是记录在表中 执行 DELETE FROM general_log WHERE event_time<='2012-05-29 14:40:02'
报 You can't use locks with log tables 换成root也一样
我要按时间段清除这个表的记录 请问有什么办法
搜了半天没搜到有用的信息

解决方案 »

  1.   

    日志是二进制的吗
    purge master logs to 'filename.number';
      

  2.   

    ... 没办法删除 
    日志表不支持LOCK TABLES,并且也不允许用户在其上进行INSERT / UPDATE / DELETE操作;
    有木有什么其它的办法  我试着把日志写进文件 但语句太长的时候自动换行了 
      

  3.   

    不是二进制文件 只是普通的查询日志
    结构如下
        1 Query UPDATE tp_cart SET user_id='126391',session_id='ed69874473fa2c65893ac5485b79b2d0' WHERE (user_id = '126391' OR session_id = 'ed69874473fa2c65893ac5485b79b2d0') AND store_id <> '0'
        1 Query COMMIT
      

  4.   

    不能直接删除,间接方法
    USE mysql;
     CREATE TABLE gn2 LIKE general_log;
     RENAME TABLE general_log TO oldLogs, gn2 TO general_log; 
      

  5.   

    上述是清空general_log,可以参照方法保留所需记录
      

  6.   

    直接truncate table general_log;mysql> truncate table general_log;
    Query OK, 0 rows affected (0.02 sec)
      

  7.   

    非常感谢各位 
    我是要读取除 select 外的语句 然后做一个同步 非常蛋痛的一个功能 用wwwwb的方法实现了
      

  8.   

    除了select外的语句  那不就是binlog吗  用binlog要比gengral效率高很多啊