前几天数据库迁移,导入数据时发现报错,如下:
Query:
LOCK TABLES `general_log` WRITE
Error occured at:2011-07-08 10:22:12
Line no.:10268
Error Code: 1556 - You can't use locks with log tables.

因为某些原因一直没有去解决这个问题,后来数据迁移也搁置了一段时间。今天再来迁移数据时发现还是这个原因。打开mysql配置文件,发现mysqldump节点下有lock-tables=0这个选项。而且我还以为是我备份的脚步有加锁表选项,发现该脚步仍然没有锁表,特地还手动备份,并且加入--lock-tables=0,不锁表。备份好,从服务器上拿下来,发现还是报上面的错误。

很郁闷,不知道为何总是有锁表的选项。没办法,根据错误一个一个的来,找到备份文件里面的general-log表,删除里面的所有信息,继续备份。

接下来又有slow-log表类似的错误,又打开备份文件,找到这个表,删除相关信息。一连搞了几个,悲剧中,终于成功。

至于为何我加了不锁表选项仍旧锁表的原因,无从得知。有知道原因的朋友,给我留个言。