刚刚不小心把数据库清空了,以前数据库没有备份,但是二进制日志文件开启的,我试图想使用二进制日志文件恢复我刚刚清空的数据库,但在恢复过程中出现这样的错误:首先使用时间恢复
C:\mysql5\bin>mysqlbinlog --stop-date="2012-06-25 17:00:00" D:\mysqlData\data\log_bin.000064 |mysql -u root -p
ERROR 1062 (23000) at line 32: Duplicate entry '613' for key 'PRIMARY'
mysqlbinlog: Error writing file 'UNOPENED' (Errcode: 2)
我又试了一下使用错误点恢复,还是同样的错误C:\mysql5\bin>mysqlbinlog --stop-position="120625" D:\mysqlData\data\log_bin.000064 | mysql -u root -p
ERROR 1062 (23000) at line 32: Duplicate entry '613' for key 'PRIMARY'
mysqlbinlog: Error writing file 'UNOPENED' (Errcode: 2)
mysqlbinlog: Error writing file 'UNOPENED' (Errcode: 22)
不能回复数据库该怎么办呀?求高手指点.......小弟不胜感激

解决方案 »

  1.   

    你的数据库中已经有这些数据了,你再重复插入导致报错。 建议你先导出到一个文本文件,然后进行修改,再提交到MYSQL。
    mysqlbinlog --stop-date="2012-06-25 17:00:00" D:\mysqlData\data\log_bin.000064 > xxx.sql
      

  2.   

    log_bin.000064
    为什么要从64恢复  应该从001开始恢复
      

  3.   

    数据库应经存在此数据库,不要重复插入数据。
    mysqlbinlog --stop-date="2012-06-25 17:00:00" D:\mysqlData\data\log_bin.000064>bbb.sql;
      

  4.   

    意思是恢复的时候先把对应的SQL放入一个sql文件中,然后执行这个sql么
      

  5.   

    应该delete了吧,主键值保留了,要truncate后的表,主键才会从1开始;
      

  6.   

    replace into