LastBoyScout: MySQL Datenbank defekt - tablespace id existiert nicht

Nach einem fehlerhaften Windows- Update, musste ich die Systemwiederherstellung bemühen um auf einen früheren Wiederherstellungspunkt zurück zu kehren. leider kann ich seither nicht mehr auf meine MySQL-DB unter XAMPP zugreifen. Im Logfile von MySQL erscheint zu jeder einzelnen Tabelle in besagter DB eine Fehlermeldung:

InnoDB: Error: table 'db/tabelle'
InnoDB: in InnoDB data dictionary has tablespace id 469,
InnoDB: but a tablespace with that id does not exist. There is
InnoDB: a tablespace of name db/tabelle and id 451, though. Have
InnoDB: you deleted or moved .ibd files?
InnoDB: Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html
InnoDB: for how to resolve the issue.

Aus irgendeinem Grund scheint eine "tablespace id" wohl nicht mehr übereinzustimmen!?

Unter dem angegebenen Link ist dieser Fall (das einen Tabelle mit abweichender id existiert) nicht angegeben und aus dem Lösungsansatz werde ich ebenfalls nicht wirklich schlau…

Gibt es einem Möglichkeit das zu reparieren, um wieder auf die Daten zugreifen zu können? oder zumindest die Daten in einer SQL- Datei zu sichern um die DB damit wiederherzustellen?

Hoffe sehr Ihr könnt mir mit helfen…

Gruß, LBS

  1. Windows-

    Hm. MySQL unter Windows... wird ausdrücklich nicht empfohlen.

    Gibt es einem Möglichkeit das zu reparieren, um wieder auf die Daten zugreifen zu können?

    Wenn Du ein Backup hast: Unbedingt. Sonst ... hust

    Ansonsten kannst Du natürlich versuchen ob mysqlcheck und oder mysqlrepair auch unter Windows verfügbar sind und was bringen:

    mysqlcheck --repair --all-databases
    

    welches für jede Datenbank/Tabelle

    mysql> repair table
    

    aufruft und nur für MyIsam funktioniert,

    Das hier wäre für InnoDB - falls die Datenbank noch soweit funktioniert.

    1. Also das Problem mit der tablespace id konnte ich mit folgendem SQL-Befehl lösen:

      ALTER TABLE db.tabelle IMPORT TABLESPACE; SHOW WARNINGS;
      

      und damit wieder auf die Tabellen der DB zugreifen… allerdings musste ich feststellen, dass es sich um einen veralteten Datenbestand handelt. Offenkundig hat die Systemwiederherstellung von Windows auch diese Daten innerhalb xampp auf einen vorgerigen Stand zurück versetzt und damit das Problem überhaupt erst verursacht.

      Habe nun zum Glück über die Volumeschattenkopien von Windows wieder den benötigten Datenbestand zurücksichern können und alles ist wieder ok.

      Trotzdem mein Dank an ursus contionabundo

      Gruß LBS