Klaus1: Wie MySQL-InnoDB Tabellen auf einen anderen Server übertragen?

Beitrag lesen

Hallo,

ich habe in einer Datenbank 37 Tabellen, 6 sind vom Typ MyISAM, der Rest InnoDB, 2 Views und 3 Prozeduren. Der Quellserver läuft unter Windows, der Zielserver unter Linux.

Ich versuche die Datenbank mittels mysqldump zu sichern und dann auf dem Zielserver wieder zu importieren.

Den mysqldump rufe ich wie folgt auf:

mysqldump --single-transaction --add-drop-database --triggers --routines --events --databases MYDB --user=backup --password >c:\tmp\MYDB.sql

Der Export sieht für mich auch erstmal ok aus.

Beim Import auf dem Zielserver bekomme ich aber diverse Meldungen:

# mysql --user=backup --password=pssst

> use MYDB;
> source MYDB.sql;

Z.B. solche Fehler:

ERROR 1813 (HY000): Tablespace '`MYDB`.`answer_variants`' exists.
Query OK, 0 rows affected (0.00 sec)

ERROR 1146 (42S02): Table 'MYDB.answer_variants' doesn't exist
ERROR 1146 (42S02): Table 'MYDB.answer_variants' doesn't exist
ERROR 1146 (42S02): Table 'MYDB.answer_variants' doesn't exist
ERROR 1146 (42S02): Table 'MYDB.answer_variants' doesn't exist
Query OK, 0 rows affected (0.00 sec)

So sieht es für die genannte Tabelle im SQL-Script aus:

--
-- Table structure for table `answer_variants`
--

DROP TABLE IF EXISTS `answer_variants`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `answer_variants` (
  `id` int(11) NOT NULL,
  `variant_name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `answer_variants`
--

LOCK TABLES `answer_variants` WRITE;
/*!40000 ALTER TABLE `answer_variants` DISABLE KEYS */;
INSERT INTO `answer_variants` VALUES (1,'A'),(2,'B'),(3,'C'),(4,'D'),(5,'E'),(6,'F'),(7,'G'),(8,'H');
/*!40000 ALTER TABLE `answer_variants` ENABLE KEYS */;
UNLOCK TABLES;

Es werden nur die MyISAM-Tabellen erzeugt.

Kann mir jemand sagen, was ich falsch mache?

LG Klaus