MySQL Dump nicht einspielbar

Dieses Thema im Forum "Server Administration" wurde erstellt von Germanius, 17. Mai 2010.

  1. Germanius

    Germanius New Member

    Hallo,

    ich habe mittels mysqldump eine Datenbank auf Mysql Version 4.x gesichert und dann versucht bei einem neuen Server Mysql 5.x einzuspielen.

    Leider bekomme ich immer folgenden Error beim Einspielen

    Code:
    ERROR 1064 (42000) at line 56: 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 'condition text,
      conditiontype enum('OR','AND') NOT NULL default 'OR',
      showor' at line 4
    
    An der betreffenden Stelle in der .sql-Datei steht folgendes

    Code:
    DROP TABLE IF EXISTS bb1_acpmenuitemgroups;
    CREATE TABLE bb1_acpmenuitemgroups (
      itemgroupid smallint(5) unsigned NOT NULL auto_increment,
      title varchar(255) NOT NULL default '',
      condition text,
      conditiontype enum('OR','AND') NOT NULL default 'OR',
      showorder smallint(5) unsigned NOT NULL default '0',
      acpmode tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (itemgroupid)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    Kann mir jemand sagen warum er da immer mit dem oben genannten Fehler abbricht?
     
  2. Till

    Till Administrator

    Ich vermute mal, dass mysql5 irgend ein Problem damit hat dass Schlüsselwörter im enum verwendet werden bzw. dass sie nicht richtig escaped sind. Versuch mal folgendes:

    Ändere die Zeile:

    conditiontype enum('OR','AND') NOT NULL default 'OR',

    in:

    conditiontype varchar(255) NOT NULL default '',

    und spiel den Dump ein. Danach öffne die DB in phpmyadmin und versuch den Spaltentüp wieder auf enum 'OR','AND' mit Default 'OR' zu setzen.
     
  3. Germanius

    Germanius New Member

    Funktioniert leider auch nicht, jetzt kommt folgende Fehlermeldung nachdem ich die Zeile abgeändert habe

    Code:
    ERROR 1064 (42000) at line 51: 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 'condition text,
      conditiontype varchar(255) NOT NULL default '',
      showorder sm' at line 4
     
  4. Germanius

    Germanius New Member

    Habe auch versucht condition und conditiontype in ' ' zu setzen, also 'condition' und 'conditiontype', weil ich irgendwo gelesen hab, dass das reservierte Wörter sind in Mysql 5, aber kommt trotzdem noch dieselbe Fehlermeldung.

    Noch andere Ideen? :(
     
  5. Till

    Till Administrator

  6. Germanius

    Germanius New Member

    So sieht das mit Backticks aus, geht aber immer noch nicht.

    Code:
    DROP TABLE IF EXISTS bb1_acpmenuitemgroups;
    CREATE TABLE bb1_acpmenuitemgroups (
      itemgroupid smallint(5) unsigned NOT NULL auto_increment,
      title varchar(255) NOT NULL default '',
      'condition' text,
      'conditiontype' enum( 'OR', 'AND' ) NOT NULL default 'OR',
      showorder smallint(5) unsigned NOT NULL default '0',
      acpmode tinyint(3) unsigned NOT NULL default '0',
      PRIMARY KEY  (itemgroupid)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    Oder wo meintest du fehlen die Backticks?
     
  7. Till

    Till Administrator

    Ich glaube das sind keine Backticks die Du da verwendet hast sondern einfache Anführungszeichen

    Backtick: `
    Einfaches Anführungszeichen: '
     
  8. Germanius

    Germanius New Member

    Hast recht, das war der Fehler. Ich sollte jetzt lieber ins Bett gehen...

    Ich bedanke mich!
     

Diese Seite empfehlen