2014-02-11 68 views
0

我在Mac上工作时,它崩溃,硬盘损坏,不能修复,除非格式化,所以我恢复了我的DB数据从OS X,我得到了所有的文件夹,现在即时通讯我试图恢复它在Windows电脑,而我修复的Mac。 我已经尝试了几个帖子,这里说,我只需要将所有文件复制到Windows上的新MySQL分期付款的数据文件夹,我已经尝试复制与frm文件和ind文件的db文件夹,然后我复制ibdata1文件,并重新启动服务,但即使如此它没有工作,我读,我不得不复制ib_logfile0和ib_logfile1,所以我做了,但然后服务没有想运行。当我恢复原始日志它的工作原理但我只能看到mysqlworkbench中的表,但是我无法查询它们,因为日志表示表格不存在,即使我可以看到它们。从* .frm文件恢复MySQL InnoDb

我在windows 7和mysqlworkbench上使用mysql 5.6。

目前我有* .frm文件,* .ibd文件,ibdata1,ib_logfiles0和1,我从我的os x hdd中拯救出来,我将它们全部复制到windows mysql安装中,因此mysql服务不会启动。 继承人当前日志,当我尝试启动服务。

FROM CARLOSDESKTOP.err: 

    2014-02-11 13:27:10 7108 Note Plugin 'FEDERATED' is disabled. 

      2014-02-11 13:27:10 3a8 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator. 

    2014-02-11 13:27:10 7108 Note InnoDB: Using atomics to ref count buffer pool pages 

    2014-02-11 13:27:10 7108 Note InnoDB: The InnoDB memory heap is disabled 

    2014-02-11 13:27:10 7108 Note InnoDB: Mutexes and rw_locks use Windows interlocked functions 

    2014-02-11 13:27:10 7108 Note InnoDB: Compressed tables use zlib 1.2.3 

    2014-02-11 13:27:10 7108 Note InnoDB: Not using CPU crc32 instructions 

    2014-02-11 13:27:10 7108 Note InnoDB: Initializing buffer pool, size = 8.0M 

    2014-02-11 13:27:10 7108 Note InnoDB: Completed initialization of buffer pool 

    2014-02-11 13:27:10 7108 Note InnoDB: Highest supported file format is Barracuda. 

2014-02-11 13:27:12 - Server start done. 

2014-02-11 13:27:12 - Status check of service 'MySQL56' returned start pending 

2014-02-11 13:47:27 - Status check of service 'MySQL56' returned stopped 



FROM CARLOSDESKTOP.err: 

    2014-02-11 13:27:12 7108 Note InnoDB: The log sequence numbers 8610473 and 8610473 in ibdata files do not match the log sequence number 13883013 in the ib_logfiles! 

    2014-02-11 13:27:12 7108 Note InnoDB: Database was not shutdown normally! 

    2014-02-11 13:27:12 7108 Note InnoDB: Starting crash recovery. 

    2014-02-11 13:27:12 7108 Note InnoDB: Reading tablespace information from the .ibd files... 

    2014-02-11 13:27:13 7108 ERROR InnoDB: space header page consists of zero bytes in tablespace .\demo\record.ibd (table demo/record) 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size:1024 Pages to analyze:64 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size: 1024, Possible space_id count:0 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size:2048 Pages to analyze:64 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size: 2048, Possible space_id count:0 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size:4096 Pages to analyze:32 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size: 4096, Possible space_id count:0 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size:8192 Pages to analyze:16 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size: 8192, Possible space_id count:0 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size:16384 Pages to analyze:8 

    2014-02-11 13:27:13 7108 Note InnoDB: Page size: 16384, Possible space_id count:0 

      InnoDB: Error: could not open single-table tablespace file .\demo\record.ibd 

      InnoDB: We do not continue the crash recovery, because the table may become 

      InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it. 

      InnoDB: To fix the problem and start mysqld: 

      InnoDB: 1) If there is a permission problem in the file and mysqld cannot 

      InnoDB: open the file, you should modify the permissions. 

      InnoDB: 2) If the table is not needed, or you can restore it from a backup, 

      InnoDB: then you can remove the .ibd file, and InnoDB will do a normal 

      InnoDB: crash recovery and ignore that table. 

      InnoDB: 3) If the file system or the disk is broken, and you cannot remove 

      InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf 

      InnoDB: and force InnoDB to continue crash recovery here. 

2014-02-11 13:47:28 - Status check of service 'MySQL56' returned stopped 

2014-02-11 13:47:28 - Starting server... 

2014-02-11 13:48:29 - Status check of service 'MySQL56' returned start pending 

2014-02-11 13:48:29 - Server start done. 

2014-02-11 13:48:30 - Status check of service 'MySQL56' returned start pending 
+0

这个问题属于dba或超级用户。 – DanFromGermany

回答

2

从备份还原数据库(我希望备份正常拍摄),你至少需要这些文件

  1. ibdata1中(和ibdata2,ibdataX如果它们被定义)
  2. 数据库目录带* .ibd和* .frm文件

如果您在Workbench中看到表,那么您只复制了.ibd和.frm文件。 ibdata1看起来是空的,因为这是InnoDB保留表字典的地方。