在phpmyadmin不小心删了一个库,有办法恢复吗??急!!

解决方案 »

  1.   

    如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据 这个能行吗?
      

  2.   

    这个可以。找到你上次的备份,从备份中恢复。然后再运行 mysql < mysqlbinlog -xxhttp://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#point-in-time-recovery
    5.9.3. 自动恢复
    5.9.3.1. 指定恢复时间
    5.9.3.2. 指定恢复位置
      

  3.   

    我试了下,这样的命令:
    mysqlbinlog --stop-date="2009-05-15 16:51:59" E:\MYsql5.1.31\bin\data\mysql-bin.000021 \ |mysql -u root -p*****提示错误:
    error line 16, UNKOWN DATABASE ‘qndj’  (即我删除的数据库)
    error: writing error 'UNOPENFILE' (errcode :22)
    同上
    not found "\" 
    错误信息大致如上
    这表示什么意思?
      

  4.   

    你的数据库还没创建呢。第一步是:恢复你的上次的全备份文件,
    第二步才是:从日志文件中恢复到某时间点 (日志文件中只是改动部分) 当然如果你的日志文件是从创建数据库至今从未PURGE过,则也没问题。
      

  5.   

    E:\MYsql5.1.31\bin\data\mysql-bin.0000001
    从第一个开始
      

  6.   

    没有成功,还是差不多的错误!执行命令:
    mysqlbinlog --stop-date="2009-05-15 16:51:59" E:\MYsql5.1.31\bin\data\mysql-bin.000001 \    
     |mysql -u root -p***** 第一行的没看清楚是什么,后边N行同样的信息:
    msqlbinlog:error writing file 'UNOPENED' [errcode:22]...最后一行:
    mysqlbinlog:File '\' not found (errcode:2)
      

  7.   

    在MySQL的错误日志中可以看到刚才的出错信息。mysqlbinlog  E:\MYsql5.1.31\bin\data\mysql-bin.000001 > aa.sql然后打开这个生成的aa.sql文本文件。看看内容。
    然后把几个mysql-bin.000002,003,...0021都生成了,21的时候注意加上 --stop-date="2009-05-15 16:51:59" 
      

  8.   

    mysqlbinlog --stop-date="2009-05-15 16:51:59" E:\MYsql5.1.31\bin\data\mysql-bin.000001 \  |mysql -u root -p***** 
    另外,你的怎么多写了个
    mysqlbinlog --stop-date="2009-05-15 16:51:59" E:\MYsql5.1.31\bin\data\mysql-bin.000001 | mysql -u root -p***** 
      

  9.   

    可不可以把所有的日志都导成 sql 文件,然后清空书库,从头开始执行语句??
      

  10.   

    可以,mysqlbinlog  E:\MYsql5.1.31\bin\data\mysql-bin.000001 > aa.sql
    mysqlbinlog  E:\MYsql5.1.31\bin\data\mysql-bin.000002 >> aa.sql
    mysqlbinlog  E:\MYsql5.1.31\bin\data\mysql-bin.000003 >> aa.sql
    ....
      

  11.   

    sql语句包含很多错误,我想都生成sql 语句,放到phpmyadin sql语句执行框里一个一个执行,这样能逐个找到错误
      

  12.   

    不应该啊。这些SQL语句都是执行过的了。一句一句有些太多了。先执行一部分,看看报错信息是什么。理论上应该一口气执行完。mysql 中执行脚本文件中的SQL语句。
    mysql> source filename
      

  13.   

    090228 13:48:06 server id 1  end_log_pos 106  Start: binlog v 4, server v 5.1.31-community-log created 090228 13:48:06 at startup
    ROLLBACK/*!*/;
    BINLOG '
    FtCoSQ8BAAAAZgAAAGoAA AAAAAQANS4xLjMxLWNvbW1 1bml0eS1sb2cAAAAAAAAAAA AAAAAAAAAA
    AAAAAAAA AAAAAAAAAAA W0KhJEzgNAAgAEgAEBAQE EgAAUwAEGggAAAAICAgC'/*!*/;说 BINLOG有语法错误:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
     server version for the right syntax to use near 'BINLOG '
    FtCoSQ8BAAAAZgAAAGoAAAAAAAQA NS4xLjMxLWNvb W11bml0eS1sb2cAAAAAAAAAAAAAAA' at line 2 
      

  14.   

    不会啊,你直接执行一下这句BINLOG看看什么结果。不行就把这句删除。