Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
TomCrow

Probleme beim Einlesen von .sql

Recommended Posts

Hallo!

Ich verwende seit einiger Zeit das db-script von Dragoran für's db-backup..

Bisher hab' ich's - zum Glück :rolleyes: - noch nie benötigt, aber bei verschiedenen "Tests" (u.a. lokal) bekomme ich immer Syntax-Fehler, wenn ich eine ganze .sql-Datei wieder über phpMyAdmin einlesen will.

Die Datei structure.sql ist z.B. nur 57 kB groß und ist etwa in der Art aufgebaut:

DROP TABLE IF EXISTS `cpg131_albums`;
CREATE TABLE `cpg131_albums` ( `aid` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `description` text NOT NULL, `visibility` int(11) NOT NULL default '0', `uploads` enum('YES','NO') NOT NULL default 'NO', `comments` enum('YES','NO') NOT NULL default 'YES', `votes` enum('YES','NO') NOT NULL default 'YES', `pos` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `last_addition` datetime NOT NULL default '0000-00-00 00:00:00', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', `keyword` varchar(50) default NULL, PRIMARY KEY (`aid`), KEY `alb_category` (`category`)) TYPE=MyISAM
DROP TABLE IF EXISTS `cpg131_banned`;
CREATE TABLE `cpg131_banned` ( `ban_id` int(11) NOT NULL auto_increment, `user_id` int(11) default NULL, `ip_addr` tinytext, `expiry` datetime default NULL, PRIMARY KEY (`ban_id`)) TYPE=MyISAM
DROP TABLE IF EXISTS `cpg131_categories`;
CREATE TABLE `cpg131_categories` ( `cid` int(11) NOT NULL auto_increment, `owner_id` int(11) NOT NULL default '0', `name` varchar(255) NOT NULL default '', `description` text NOT NULL, `pos` int(11) NOT NULL default '0', `parent` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `subcat_count` int(11) NOT NULL default '0', `alb_count` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', PRIMARY KEY (`cid`), KEY `cat_parent` (`parent`), KEY `cat_pos` (`pos`), KEY `cat_owner_id` (`owner_id`)) TYPE=MyISAM
..

Wenn ich die Befehle aber einzeln ausführe, klappt das. Fehlt/stört da irgendein "Trennzeichen" zwischen den einzelnen Abschnitten oder liegt es an der Formattierung??

mfg,

Tom

Share this post


Link to post

hallo tom,

ich kann dir zwar da nicht direkt weiterhelfen, hatte das aber früher auch schon mal genau so wie du und kam nicht dahinter was der Fehler war (aber nicht mit dragorans script)

Jetzt aber ich verwende schon seit langem den "MySQL Commander" - der kommt auch mit sehr großen Dumps zurecht (was bei dir zwar mom. ned das Problem ist) und ich hatte damit noch nie Probleme beim wiederherstellen. Wenn die Dumps erstmal hochgeladen wurden, dann geht die Wiederherstellung in null komma nix.

http://www.bitesser.de/freeware/script.php?id=1

Edited by howgo

Share this post


Link to post

Hallo howgo!

Erstmal danke für den Tipp! :)

Aber eigentlich sollte Dragorans script ja genau solche Probleme mit großen dbs verhindern bzw. durch Aufsplitten "kompensieren" (es gibt dann eben nicht eine ibf_posts sondern ibf_posts1, ibf_posts2, usw. - die jeweilige Größe läßt sich Eeinstellen, um dem timeout beim Einlesen vorzubeugen..).

Mittlerweile bin ich beim Durchsehen etwas schlauer geworden: in der structure.sql fehlen anscheinend die abschließenden Semikolons, wenn ich die nachträglich einsetze, klappt's:

DROP TABLE IF EXISTS `cpg131_albums`;

CREATE TABLE `cpg131_albums` ( `aid` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `description` text NOT NULL, `visibility` int(11) NOT NULL default '0', `uploads` enum('YES','NO') NOT NULL default 'NO', `comments` enum('YES','NO') NOT NULL default 'YES', `votes` enum('YES','NO') NOT NULL default 'YES', `pos` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `last_addition` datetime NOT NULL default '0000-00-00 00:00:00', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', `keyword` varchar(50) default NULL, PRIMARY KEY (`aid`), KEY `alb_category` (`category`)) TYPE=MyISAM;

DROP TABLE IF EXISTS `cpg131_banned`;

Leider kommt nach TYPE=MyISAM manchmal noch ein COMMENT=.., daher kann man nicht einfach alle TYPE=MyISAM durch TYPE=MyISAM; ersetzen.. ;)

Notlösung: die structure.sql ist ja nicht so groß und läßt sich daher im "Falle des Falles" auch manuell korrigieren; bei den übrigen .sql-Dateien, die das script liefert, dürft's funktionieren, die einzelnen INSERT statements werden mit ; abgeschlossen (hab' aber nur Stichproben gemacht ;) ).

Dabei aber auch gleich noch eine weitere Frage: wie importiere ich die .sql-Dateien so, dass auch die Umlaute korrekt übernommen werden? Im Moment bekomme ich überall ein Fragezeichen (was v.a. bei der ibf_posts wohl katastrophal wär').. :unsure:

mfg,

Tom

Share this post


Link to post

Aber eigentlich sollte Dragorans script ja genau solche Probleme mit großen dbs verhindern bzw. durch Aufsplitten "kompensieren" (es gibt dann eben nicht eine ibf_posts sondern ibf_posts1, ibf_posts2, usw. - die jeweilige Größe läßt sich Eeinstellen, um dem timeout beim Einlesen vorzubeugen..).

Das passt zwar nicht direkt zum Thema, aber auch Dragorans Script, welches ich früher auch genutzt habe und sehr zufrieden damit war, wird, wenn ich das noch richtig in Erinnerung habe, ab einer gewissen DB-Grösse (ca. 50 MB) nicht mehr richtig funktionieren.

Edited by kingofcomedy

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×