Export/Import eines Typo3-Webs: ERROR 1005 (HY000) at line Can't create table innodb

Typo3 arbeitet standardmäßig mit dem frei verfügbaren DBMS MySQL zusammen und somit ist es sehr einfach, eine Typo3-Installation zu sichern und zu kopieren. Neben dem Kopieren des Typo3-Verzeichnisses arbeitet man mit den MySQL-Tools mysqldump und mysql, um die Datenbank zu exportieren und später wieder zu importieren. Das ist im Prinzip alles!

Bei der letzten Kopieraktion kam es zu Komplikationen, denn der MySQL-Dump auf System A ließ sich nicht auf System B importieren, obwohl es sich um nahezu identische Linux-Systeme handelte. Auch die Typo3-Datenbank war standard. Beim Importieren weigerte sich MySQL mit folgender Fehlermeldu

# mysql -u root -p db1 < db1.sql
ERROR 1005 (HY000) at line 201 Can't create table inndb

Ein Blick in das SQL-Dump db1.sql zeigt, dass es sich hier nicht um eine MyIsam-, sondern tatsächlich um eine InnoDB-Tabelle handelt:

CREATE TABLE `cache_hash` (
  `hash` varchar(32) NOT NULL DEFAULT '',
  `content` mediumblob NOT NULL,
  `tstamp` int(11) unsigned NOT NULL DEFAULT '0',
  `ident` varchar(20) NOT NULL DEFAULT '',
  PRIMARY KEY (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

MySQL hat an dieser Stelle tatsächlich Probleme, eine InnoDB-Tabelle anzulegen, denn erstellt man diese Tabelle manuell mit ENGINE=MyISAM anstatt ENGINE=InnoDB gibt es keine Probleme. MySQL legt die Tabelle problemlos an.

Ein Blick in das Error-Log beschreibt das Problem etwas genauer:

# tail -n200 /var/log/mysql/mysqld.err
101010 13:15:18  InnoDB: Warning: cannot create table `db1/cache_hash` because tablespace full

Laut dieser Meldung ist die Tablespace voll.

Problemlösung

Öffnen der MySQL-Konfigurationsdatei und den Wert innodb_data_file_path erhöhen (Standard 128 MB):

# vi /etc/mysql/my.cnf
innodb_data_file_path = ibdata1:10M:autoextend:max:256M

Anschließend MySQL neustarten. Danach funktioniert auch der Import der Typo3-Datenbank.