停止mysql服务
删除ibdata1, ib_logfile0, ib_logfile1
删除所有有关的数据库目录,比如我以前有个test_abc的库,就把mysql下的test_abc删除掉
重启数据库,貌似一切正常,也能新建数据库,新建表,也能进mysql,和information_schema库
然后全都可以读取,user表和那些help表那些数据也都正常唯一不正常的,就是:mysql的proc表和information_schema库中的ROUTINES表还都保留着删除掉的库的存储过程和函数(以后要重建所有数据库,这些会被新建的同名的存储程序覆盖掉)这样重建我总觉得太暴力了点,也怕有隐患,mysql自己有没有什么机制,可以reset到刚安装状态的?

解决方案 »

  1.   

    这样最快.要是可以的话再用初始化mysql库的脚本;
    要么就一个个drop 好了;
      

  2.   


    我这么做,主要是因为,常常数据库损坏了以后,我即使innodb_force_recovery=6了,一"drop database xxx"也会出错,无奈之下才会想到这个办法
      

  3.   

    正常的做法应该是:
    1 drop所有库,mysql库除外
    2 删除所有innodb表空间文件
      

  4.   

    我这么做,主要是因为,常常数据库损坏了以后,我即使innodb_force_recovery=6了,一"drop database xxx"也会出错,无奈之下才会想到这个办法
      

  5.   

    innodb_force_recovery=6了,drop database xxx----------为什么不在正常状态下?即innodb_force_recovery=0
    innodb_force_recovery=6 很多没法写了,出错正常。1 mysql服务器运行时,drop所有myisam库或表,mysql库除外
    2 服务器停止时,删除所有innodb表空间文件
    即可。
      

  6.   

    最安全的恢复方法是,在你安装完mysql之后,立即将data/mysql目录备份到一个位置。
    之后,出了问题,如你暴力方式所说,全删,把mysql目录复原即可。
      

  7.   


    很简单,把 datadir 下的这三个文件ibdata1, ib_logfile0, ib_logfile1全部删除
    然后再把除mysql文件夹外的所有其它文件夹删除。