2013-09-02 4 views
16

Ich habe Drupal auf meinem lokalen XAMPP-Server installiert. Es funktionierte alles in Ordnung, keine Probleme beim Einbinden und Arbeiten mit der Datenbank/Site, bis ich XAMPP neu startete. Seitdem bekomme ich folgende an meinem Logfile:XAMPP/MySQL: konnte nicht Single Tablesetabellen-Datei. Mysql innodb_index_stats.ibd nach dem Neustart von MySQL

2013-09-02 16:18:46 2544 [Note] Plugin 'FEDERATED' is disabled.

2013-09-02 16:18:46 3e8 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.

2013-09-02 16:18:46 2544 [Note] InnoDB: The InnoDB memory heap is disabled

2013-09-02 16:18:46 2544 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions

2013-09-02 16:18:46 2544 [Note] InnoDB: Compressed tables use zlib 1.2.3

2013-09-02 16:18:46 2544 [Note] InnoDB: Not using CPU crc32 instructions

2013-09-02 16:18:46 2544 [Note] InnoDB: Initializing buffer pool, size = 16.0M

2013-09-02 16:18:46 2544 [Note] InnoDB: Completed initialization of buffer pool

2013-09-02 16:18:46 2544 [Note] InnoDB: Highest supported file format is Barracuda.

2013-09-02 16:18:47 2544 [Note] InnoDB: The log sequence numbers 1600614 and 1600614 in ibdata files do not match the log sequence number 1600644 in the ib_logfiles!

2013-09-02 16:18:47 2544 [Note] InnoDB: Database was not shutdown normally!

2013-09-02 16:18:47 2544 [Note] InnoDB: Starting crash recovery.

2013-09-02 16:18:47 2544 [Note] InnoDB: Reading tablespace information from the .ibd files...

2013-09-02 16:18:47 2544 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace drupal/variable uses space ID: 2 at filepath: .\drupal\variable.ibd. Cannot open tablespace mysql/innodb_index_stats which uses space ID: 2 at filepath: .\mysql\innodb_index_stats.ibd

InnoDB: Error: could not open single-table tablespace file .\mysql\innodb_index_stats.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.

ich für eine Lösung über Google gesucht, aber es scheint nur ein Problem mit der Drupal-Datenbank zu sein, weil es in der Lage ist, mit MySQL zu verbinden, wenn ich die Datenbank zu entfernen.

Ich hoffe, dass mir jemand helfen könnte :(

+0

Ok, ich denke, ich habe es. Es war ein Problem mit den Benutzer-Privilegien für die Datenbank. Der Benutzer hatte die Rechte, aber nach dem Herunterfahren von MySQL wurden alle Änderungen, die mein Benutzer vorgenommen hatte, abgebrochen. Jetzt hat mein Benutzer nur in dieser Datenbank eingeschränkte Rechte und - siehe - es funktioniert :). – leiseliesel

Antwort

7

dev_khan, try MySQL in Read-Only-Modus mit der Option innodb_force_recovery Neustart aktiviert:

  1. bearbeiten my.cnf - finden Sie die Zeile: # innodb_force_recovery = 2
  2. Kommentar die Zeile in (Entfernen Sie die)
  3. Starten Sie MySQL neu, damit die MySQL-Engine sich selbst reparieren kann.
  4. Kommentar der innodb_force_recovery Linie wieder in (add #) wieder
  5. Restart MySQL und Sie haben wieder vollen Zugang ohne Read-Only-Beschränkung.

Grüße aus Deutschland

33

Verschieben Sie diese Dateien (nicht löschen), in einen anderen Ordner.

innodb_index_stats.frm 
innodb_table_stats.frm 
slave_master_info.frm 
slave_relay_log_info.frm 
slave_worker_info.frm 

und .ibd Dateien mit dem gleichen Dateinamen:

innodb_index_stats.ibd 
innodb_table_stats.ibd 
slave_master_info.ibd 
slave_relay_log_info.ibd 
slave_worker_info.ibd 

Versuchen Sie MySQL starten.

+0

Ich habe das schon mal probiert, aber ich habe das selbe Problem immer wieder bekommen. Nur die Privilegien meines Datenbankbenutzers zu ändern funktionierte gut :) Aus irgendeinem Grund wurden alle Änderungen, die mein Benutzer gemacht hat, nach dem Herunterfahren des Systems mit 0 überschrieben, aber danke für deine Antwort! – leiseliesel

+0

Hallo, ich habe das gleiche Problem .. Wie kann ich die Privilegien meiner Datenbank ändern? –

+0

Werfen Sie einen Blick hier (http: // serverfault.com/questions/115950/how-do-ich-ändern-die-Privilegien-für-mysql-Benutzer-das-ist-schon-erstellt) und hier (http://stackoverflow.com/questions/5016505/mysql-grant -all-Privilegien-auf-Datenbank). –

19

Sie dieses Problem durch Hinzufügen einer Zeile lösen in Ihrem mysql config-f ile: my.cnf oder my.ini (abhängig von Ihrer Distribution)

knapp [mysqld] fügen Sie diese Zeile: innodb_force_recovery = 1

.. 
[mysqld] 
innodb_force_recovery = 1 
.. 

Dann starten Sie den MySQL-Server. Sie könnten einige Daten verloren haben, aber Sie werden den Server wieder mit Ihren Daten arbeiten lassen.

Grüße,

+0

Das reparierte es für mich, obwohl es mich warnte, dass es Probleme verursachen könnte. Stellen Sie daher sicher, dass Sie eine Sicherungskopie erstellen, bevor Sie dies tun. Ich schätze, es könnte sich zwingen, die DB im Prozess zu brechen brechen – Crecket

+0

Charles P. Nach diesem Schritt haben meine Tabellen nur Leseberechtigung. Kann ich keine Idee einfügen/aktualisieren? –

+0

Hallo, dev_khan. Es ist mir nicht passiert, aber versuchen Sie, diese Zeile zur Konfigurationsdatei hinzuzufügen: skip-grant-tables Starten Sie dann mysql neu und versuchen Sie es erneut. –

0

Auch das mit Wordpress passiert. Es scheint nur mit der neuesten Version zu geschehen, da ich zu früheren Versionen von AMPPS zurückgekehrt bin, und es funktioniert gut, ohne dieses innodb-Problem aufzugeben.

Verwandte Themen