Syntax Fehler beim einlesen eines Dump
Syntax Fehler beim einlesen eines Dump
am 20.12.2005 11:44:10 von Juerg Schwarz
OS: Linux a
PHP: 4.3.8
MySQL: 4.0.21-Max
Ich will eine DB-Dump-Datei in eine andere reinkopieren. Ganz einfach:
mysqldump -u username -ppassword usr_web29_1 > web29-dump.sql
Das funkt . Dann
mysql -u username -ppassword usr_web28_1 < web28-dump.sql
Es folgt:
ERROR 1064 ar line 141:You have an error in your SQL syntax usw....
....near
option varchar(59) NOT NULL default '',
ordering int(11) NOT
Es erstellt mir mal die ersten 4 Tabellen und füllt die auch auf. Die
ganze Dump Datei sieht ordentlich aus bis ans Ende. Nix auffälliges zu
sehen.
Die Stelle an der der Fehler passiert sieht so aus:
CREATE TABLE jos_components (
id int(11) NOT NULL auto_increment,
name varchar(50) NOT NULL default '',
link varchar(255) NOT NULL default '',
menuid int(11) unsigned NOT NULL default '0',
parent int(11) unsigned NOT NULL default '0',
admin_menu_link varchar(255) NOT NULL default '',
admin_menu_alt varchar(255) NOT NULL default '',
option varchar(50) NOT NULL default '',
ordering int(11) NOT NULL default '0',
admin_menu_img varchar(255) NOT NULL default '',
iscore tinyint(4) NOT NULL default '0',
params text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
Also ich sehe hier rein gar nichts was falsch sein könnte. Zumal das
Ganze auf derselben Maschine ausgeführt wird.
Any hints
Juerg
Re: Syntax Fehler beim einlesen eines Dump
am 20.12.2005 12:13:09 von Kai Ruhnau
Juerg Schwarz wrote:
> MySQL: 4.0.21-Max
>
> Ich will eine DB-Dump-Datei in eine andere reinkopieren. Ganz einfach:
>
> mysqldump -u username -ppassword usr_web29_1 > web29-dump.sql
>
> Das funkt . Dann
Auf welcher Frequenz? Dir schon klar, dass nicht alle Frequenzen einfach
so benutzt werden dürfen? Aber vielleicht meinst du etwas anderes...
> mysql -u username -ppassword usr_web28_1 < web28-dump.sql
>
> Es folgt:
>
> ERROR 1064 ar line 141:You have an error in your SQL syntax usw....
> ...near
> option varchar(59) NOT NULL default '',
> ordering int(11) NOT
[während]
> CREATE TABLE jos_components (
> id int(11) NOT NULL auto_increment,
> name varchar(50) NOT NULL default '',
> link varchar(255) NOT NULL default '',
> menuid int(11) unsigned NOT NULL default '0',
> parent int(11) unsigned NOT NULL default '0',
> admin_menu_link varchar(255) NOT NULL default '',
> admin_menu_alt varchar(255) NOT NULL default '',
> option varchar(50) NOT NULL default '',
> ordering int(11) NOT NULL default '0',
> admin_menu_img varchar(255) NOT NULL default '',
> iscore tinyint(4) NOT NULL default '0',
> params text NOT NULL,
> PRIMARY KEY (id)
> ) TYPE=MyISAM;
>
> Also ich sehe hier rein gar nichts was falsch sein könnte. Zumal das
> Ganze auf derselben Maschine ausgeführt wird.
Mir fallen gleich mehrere Dinge auf:
- "option" ist ein reserviertes Wort in MySQL
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
- Du solltest die Option --quote-names benutzen, um dieses reservierte
Wort zu quoten. Warum ist das nicht default?
- Warum benutzt du in dieser Tabelle Strings als Defaultwert für
Integertypen?
- menuid und parent klingen nicht gerade nach Feldern, die mit einem
Sinnvollen Defaultwert belegt werden können.
Grüße
Kai
Re: Syntax Fehler beim einlesen eines Dump
am 20.12.2005 12:14:44 von Carsten Wiedmann
Juerg Schwarz schrieb:
> OS: Linux a
> PHP: 4.3.8
> MySQL: 4.0.21-Max
>
> Ich will eine DB-Dump-Datei in eine andere reinkopieren. Ganz einfach:
>
> mysqldump -u username -ppassword usr_web29_1 > web29-dump.sql
>
> Das funkt . Dann
>
> mysql -u username -ppassword usr_web28_1 < web28-dump.sql
>
> Es folgt:
>
> ERROR 1064 ar line 141:You have an error in your SQL syntax usw....
> ...near
> option varchar(59) NOT NULL default '',
> ordering int(11) NOT
OPTION ist ein reserviertes Wort, dass du quoten musst. Wenn du bei
mysqldump noch "--quote-names" machst, sollte das automatisch tun.
Gruß
Carsten
Re: Syntax Fehler beim einlesen eines Dump
am 20.12.2005 12:17:24 von Dominik Echterbruch
Juerg Schwarz wrote:
>
> mysql -u username -ppassword usr_web28_1 < web28-dump.sql
>
> Es folgt:
>
> ERROR 1064 ar line 141:You have an error in your SQL syntax usw....
> ...near
> option varchar(59) NOT NULL default '',
> ordering int(11) NOT
>
> Es erstellt mir mal die ersten 4 Tabellen und füllt die auch auf. Die
> ganze Dump Datei sieht ordentlich aus bis ans Ende. Nix auffälliges zu
> sehen.
>
> Die Stelle an der der Fehler passiert sieht so aus:
>
> CREATE TABLE jos_components (
> id int(11) NOT NULL auto_increment,
> name varchar(50) NOT NULL default '',
> link varchar(255) NOT NULL default '',
> menuid int(11) unsigned NOT NULL default '0',
> parent int(11) unsigned NOT NULL default '0',
> admin_menu_link varchar(255) NOT NULL default '',
> admin_menu_alt varchar(255) NOT NULL default '',
> option varchar(50) NOT NULL default '',
> ordering int(11) NOT NULL default '0',
> admin_menu_img varchar(255) NOT NULL default '',
> iscore tinyint(4) NOT NULL default '0',
> params text NOT NULL,
> PRIMARY KEY (id)
> ) TYPE=MyISAM;
>
> Also ich sehe hier rein gar nichts was falsch sein könnte. Zumal das
> Ganze auf derselben Maschine ausgeführt wird.
Ich sehe da schon was. Also genauer gesagt sehe ich da etwas _nicht_,
was aber eigentlich das sein muß, damit es funktioniert. Vielleicht
hilft dir [1], es selber herauszufinden.
Nach der Lokalisierung des Problems hilft dir der Punkt --quote-names
unter [2] sicherlich gerne bei der Lösung.
[1] http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
[2] http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html
Grüße,
Dominik
--
MonstersGame - Die Schlacht zwischen Vampiren und Werwölfen
http://spielwelt6.monstersgame.net/?ac=vid&vid=3018786
Re: Syntax Fehler beim einlesen eines Dump
am 20.12.2005 14:23:47 von Christian Kirsch
Juerg Schwarz wrote:
> OS: Linux a
> PHP: 4.3.8
> MySQL: 4.0.21-Max
>
> Ich will eine DB-Dump-Datei in eine andere reinkopieren. Ganz einfach:
>
> mysqldump -u username -ppassword usr_web29_1 > web29-dump.sql
>
Bei den Shells, die ich kenne, kopiert das keineswegs etwas irgendwo
rein sondern es erzeugt web29-dump.sql oder überschreibt die Datei, wenn
sie schon existiert.
> Das funkt . Dann
Ah.
>
> mysql -u username -ppassword usr_web28_1 < web28-dump.sql
>
> Es folgt:
>
> ERROR 1064 ar line 141:You have an error in your SQL syntax usw....
> ...near
> option varchar(59) NOT NULL default '',
> ordering int(11) NOT
>
Vermtlich ist OPTION ein reserviertes Wort.