Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

WAMP MySQL Dump geht, aber Import geht nicht :-(

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
ldi
Member
Member
Beiträge: 60
Registriert: 17. Jul 2004, 20:43
Wohnort: Westerwald

WAMP MySQL Dump geht, aber Import geht nicht :-(

Beitrag von ldi »

Tach Leude !

Habe ein kleines Prob mit meiner MySQL. Habe mit dem Befehl mysqldump einen dump gemacht der auch funktioniert hat.
(mysqldump -u user --p cds > test.sql)

danach probiert den dump via mysql -u user -p passwort -h localhost datenbank < test.sql wieder einzulesen, aber ich bekomme immer nur Fehlermeldungen. Den Dump habe ich aus einer Datenbank namens ldi gemacht und es ist eine Tabelle namens cds.

Beim Import habe ich versucht, die Tabelle cds in eine andere Datenbank names test zu importieren. Nix zu machen. Nur Fehlermeldungen.

Hier die Fehlermeldungen:

1.)
mysqlimport: Error: Table 'test.cds' doesn't exist, when using table: cds

oder

2.)
ERROR 1064 at line 11: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Interpret varchar(100) NOT NULL default '', CD Name varchar(1

(sieht so aus alls rafft er was nicht !?)



Das Dump File hat folgenden Inhalt:

-- MySQL dump 9.11
--
-- Host: localhost Database: ldi
-- ------------------------------------------------------
-- Server version 4.0.20a-nt

--
-- Table structure for table `cds`
--

CREATE TABLE cds (
CD Interpret varchar(100) NOT NULL default '',
CD Name varchar(100) NOT NULL default ''
) TYPE=MyISAM COMMENT='eine Test Datenbank';

--
-- Dumping data for table `cds`
--

INSERT INTO cds VALUES ('ACDC','Hells Bells');
INSERT INTO cds VALUES ('Dire Straits','Brothers in Arms');



So nun bitte Butter bei die Fische.

Um den erzeugten Dump von mysqldump wieder einzulesen nimmt man doch unter Windows die mysql.exe und nicht die mysqlimport.exe ?!

Muss man vorher die Tabelle in der neuen Datenbank wieder anlegen ?!
(-> wäre doch Schwachsinn !!!)

Please help me !

DANKE !
SERVER: P4 3GHz, 3WARE 9550SX-8LP 5x300GB=1,2TB, 160GB Boot Platte, SUSE 11.0
PC1: Shuttle SB75G2, P4 2.8GHz, 2GB, 1x160GB, SUSE 11.0
PC2: AMD64 3400+, 2GB, 2x160GB RAID0 + 1x120GB, Windows XPP
PC3: INTEL Q9550, 4GB, 2x750GB, ATI4870X2, Vista32 Ultimate
Werbung:
Benutzeravatar
moenk
Administrator
Administrator
Beiträge: 1397
Registriert: 15. Aug 2003, 15:36
Wohnort: N52° 27.966' E013° 20.087'
Kontaktdaten:

Beitrag von moenk »

Probier mal: Komplette Inserts beim Export mit phpMyAdmin, zum einlesen Option "-w" verwenden.
Denkst Du noch selber oder bist Du schon Schwarm?
ldi
Member
Member
Beiträge: 60
Registriert: 17. Jul 2004, 20:43
Wohnort: Westerwald

Beitrag von ldi »

Danke für Deine Antwort !

Aber ich will nicht bzw. kann nicht mit PHPMyAdmin arbeiten, ich will das über die Konsole machen, denn PHPMyAdmin schmiert immer ab, weil die Datei des Dumps so ca. 50 MB groß wird (von der scharfen Datenbank).
(x mal mit phpmyadmin probiert, schmiert immer ab; ein 50 MB Dump ist doch nicht groß, oder liege ich hier völlig Falsch mit meiner Meinung ?!)

Ich habe evtl. den Fehler selber gefunden ! 8)

Der Dump, den ich erzeugt hatte von meiner Test-Datenbank mit dem mysqldump Befehl hat einen Dump erzeugt, den mysql nicht selber wireder einlesen konnte. Hört sich evtl. doof an, aber als ich die Leerstelles manuell mit einem Editor der Feldernamen rausgenommen habe, ginbg es auf einmal.

Auszug aus dem Original Dump :

CREATE TABLE cds (
CD Interpret varchar(100) NOT NULL default '',
CD Name varchar(100) NOT NULL default ''
) TYPE=MyISAM COMMENT='eine Test Datenbank';


wurde von mir geändert in

CREATE TABLE cds (
Interpret varchar(100) NOT NULL default '',
Name varchar(100) NOT NULL default ''
) TYPE=MyISAM COMMENT='eine Test Datenbank';


.... und schwups es geht ! Ist das nicht merkwürdig ?

Warum erstellt der mysqldump denn ein File, was er
selber nicht mehr einlesen kann oder liegt es darn, dass
ich unzulässige Namen für die Felder gewählt habe ?!

Habe nämlich als Feldname (siehe Dump) "CD Interpret"
angelegt gehabt (2 Wörter mit Space getrennt). Beim Anlegen
im phpmyadmin hat jedenfalls niemand gemeckert beim Anlegen).

Danke für eine Antowort.

Gibt es nicht eine bessere bzw. einfachere Methode eine MySQL Datenbank / Tabelle zu kopieren bzw. zu backupen ?!

Gruss Sascha
SERVER: P4 3GHz, 3WARE 9550SX-8LP 5x300GB=1,2TB, 160GB Boot Platte, SUSE 11.0
PC1: Shuttle SB75G2, P4 2.8GHz, 2GB, 1x160GB, SUSE 11.0
PC2: AMD64 3400+, 2GB, 2x160GB RAID0 + 1x120GB, Windows XPP
PC3: INTEL Q9550, 4GB, 2x750GB, ATI4870X2, Vista32 Ultimate
litemaster
Member
Member
Beiträge: 127
Registriert: 10. Aug 2004, 11:51

Beitrag von litemaster »

ldi hat geschrieben:Warum erstellt der mysqldump denn ein File, was er
selber nicht mehr einlesen kann oder liegt es darn, dass
ich unzulässige Namen für die Felder gewählt habe ?!

Habe nämlich als Feldname (siehe Dump) "CD Interpret"
angelegt gehabt (2 Wörter mit Space getrennt). Beim Anlegen
im phpmyadmin hat jedenfalls niemand gemeckert beim Anlegen).
Ich habe auch zwei Monate lang Backups erstellt, bis mir aufgefallen ist, dass ich diese gar nicht importieren kann.. :roll:

Das Problem ist eben genau dieses Leerzeichen, da der erste Teil als Feld-Name interpretiert wird und der zweite Teil als dessen Datentyp (statt das nachfolgende varchar(100)).

Zum Exportieren gibst du zusätzlich die Option --quote-names (oder -Q) an, damit die Tabellen und Datenbanknamen in einfachen Anführungszeichen abgespeichert werden (dies ist identisch mit der SQL-Export-Option "Tabellen- und Feldnamen in einfachen Anführungszeichen" von phpMyAdmin).

Code: Alles auswählen

mysqldump -u user --p cds -Q > dump.sql
Den Import mache ich jeweils am mysql-Prompt mit

Code: Alles auswählen

mysql> source dump.sql
Antworten