Migration MySQL 4.0.26 auf 5.0.18

Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 18:49:04 von Christian Steffens

Hi,
habe Probleme beim Umstieg von Mysql Version 4.0.26 auf Version 5.0.18
jeweils unter Windows 2000 Prof. Habe knapp 30 Datenbanken verschiedener
Größe die exportiert werden müssen.

Ansich kein Problem, aber beim Export bzw. um genau zu sein beim IMPORT
gibts einige 'errors'. Habe es per phpmyadmin, mysqldump und auch mit
dem Navicat SQL-Manager probiert. Jedesmal werden gewisse Datensätze
ausgelassen und nur nicht importiert.

Z.B. 79089 Datensätze exportiert,
aber es werden nur 853 (nach dem ersten Fehler bricht der import-Vorgang
ab). Fehlermeldung: 1406 - Data too long for column 'note' at row 1


Also der Export aus Version 4.0 klappt anscheinend, aber das Übertragen
in Version 5 scheitert. Liegt das vielleicht am Zeichensatz, die
Datensätze die korrekt importiert wurden, sind teilweise durch
fehlerhaften Zeichen beschädigt. Umlaute und Sonderzeichen halt, das
Problem konnte ich aber insofern lösen, in dem ich im Mysql5 Server
latin1 bzw. UTF-8 je nach Bedarf als Datensatz für die spezifische
Datenbank verwende.

Bleibt aber dennoch das Problem bestehen, dass nur ein Teil der
Datensätze importiert wird. Kennt jemand einen sauberen Weg die DB zu
exportieren und das möglichst in einem Rutsch für alle 30 DBs auf
einmal? Und sind jemanden diese Probleme beim Umstieg von Version 4 auf
5 bekannt? Ich hörte nur von Problemen bzgl. den Benutzer/Passwörter,
dass löse ich aber, indem ich einfach alle Nutzer neu manuell anlege.

Bin für jede Hilfe dankbar,
mittlerweile fällt mir echt keine Lösung mehr ein.

MfG
Christian

Re: Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 19:03:51 von Christian Steffens

Sorry,
kleiner Nachtrag: Das Problem des Export/Import lässt sich umgehen,
indem ich einfach die DBs direkt aus C:/mysql/data in
C:/Programme/mysql5/data kopiere.

Damit sind alle Datensätze und Sonderzeichen korrekt übertragen,
aber jetzt stellt sich ein anderes Problem: Der Zugriff auf die
Datenbank ist sehr langsam, also wirklich spürbar

Queries die früher 0.165sec gebraucht haben, benötigen jetzt mindesten 5
sek - hat das mir meinem "unsauberen" Export/Import-Vorgang (sprich
direktes kopieren der DBs ins Verzeichnis) zu tun, oder ist der Fehler
auf Seiten des Webserver zu suchen (Apache 2/PHP 4.4.0)?

Ich weiß, dass ich nicht unbedingt die richtige Newsgroup hierfür,
aber ich habe den ursprünglich Beitrag ja auch hier gepostet.

Danke
Christian

Re: Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 19:05:24 von Christian Kirsch

Christian Steffens schrieb:
> Hi,
> habe Probleme beim Umstieg von Mysql Version 4.0.26 auf Version 5.0.18
> jeweils unter Windows 2000 Prof. Habe knapp 30 Datenbanken verschiedener
> Größe die exportiert werden müssen.
>
> Ansich kein Problem, aber beim Export bzw. um genau zu sein beim IMPORT
> gibts einige 'errors'.
> Habe es per phpmyadmin, mysqldump und auch mit
> dem Navicat SQL-Manager probiert. Jedesmal werden gewisse Datensätze
> ausgelassen und nur nicht importiert.
>
> Z.B. 79089 Datensätze exportiert,
> aber es werden nur 853 (nach dem ersten Fehler bricht der import-Vorgang
> ab). Fehlermeldung: 1406 - Data too long for column 'note' at row 1
>

Das spricht doch dafür, dass Du beim Export *eine* Zeile erzeugst, die
ein INSERT für alle Datensätze enthält. Nun gibt es aber eine
Beschränkung hinsichtlich der maximalen Größe eines Datenpakets bei
MySQL - das könnte Dich hier erwischen.

>
> Also der Export aus Version 4.0 klappt anscheinend, aber das Übertragen
> in Version 5 scheitert. Liegt das vielleicht am Zeichensatz, die
> Datensätze die korrekt importiert wurden, sind teilweise durch
> fehlerhaften Zeichen beschädigt. Umlaute und Sonderzeichen halt, das
> Problem konnte ich aber insofern lösen, in dem ich im Mysql5 Server
> latin1 bzw. UTF-8 je nach Bedarf als Datensatz für die spezifische
> Datenbank verwende.

Das Thema Zeichensätze etc. ist hier seit Monaten so gründlich
durchgekaut worden, dass Du in dem entstandenen Brei sicherlich die
nötigen Informationen findest -> Google ist Deine Freundin. Auch bei
diesem Thema wäre aber grundsätzlich eine klare Beschreibung sinnvoll,
wenn Du Hilfe suchst. "fehlerhafte" Zeichen versteht niemand außer Dir
- was stand in der 4er Tabelle, was steht im Dump, und was zeigt Dir
mysql (der Kommandozeilenclient) an (in welcher Umgebung - latin-1?
utf-8?)

>
> Bleibt aber dennoch das Problem bestehen, dass nur ein Teil der
> Datensätze importiert wird. Kennt jemand einen sauberen Weg die DB zu
> exportieren und das möglichst in einem Rutsch für alle 30 DBs auf
> einmal? Und sind jemanden diese Probleme beim Umstieg von Version 4 auf
> 5 bekannt? Ich hörte nur von Problemen bzgl. den Benutzer/Passwörter,
> dass löse ich aber, indem ich einfach alle Nutzer neu manuell anlege.
>

Erstens weiß ich gar nicht, *warum* Du die Daten unbedingt ex- und
wieder importieren möchtest. Ich kann hier problemlos mit 3.x
erstellte Datenbanken mit 5.x bearbeiten. Nie irgendwas ex-/importiert.

Zweitens: Wenn Du meinst, exportieren zu müssen, dann bitte nur mit
brauchbaren Werkzeugen, also in diesem Fall mit mysqldump. --help
liefert Dir sämtliche Optionen, die das versteht - eine davon betrifft
IIRC die Form des INSERT-Statements.

Drittens: Wenn es wieder Fehlermeldungen gibt: Welche? Was steht in
der Zeile, auf die sich die Meldung bezieht?

Re: Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 19:33:44 von Christian Kirsch

Christian Steffens wrote:
> Sorry,
> kleiner Nachtrag: Das Problem des Export/Import lässt sich umgehen,
> indem ich einfach die DBs direkt aus C:/mysql/data in
> C:/Programme/mysql5/data kopiere.
>
> Damit sind alle Datensätze und Sonderzeichen korrekt übertragen,
> aber jetzt stellt sich ein anderes Problem: Der Zugriff auf die
> Datenbank ist sehr langsam, also wirklich spürbar
>
> Queries die früher 0.165sec gebraucht haben, benötigen jetzt mindesten 5
> sek - hat das mir meinem "unsauberen" Export/Import-Vorgang (sprich
> direktes kopieren der DBs ins Verzeichnis) zu tun, oder ist der Fehler
> auf Seiten des Webserver zu suchen (Apache 2/PHP 4.4.0)?
>

Apache und PHP sind hier, wie Du selbst sagst, nicht on-topic. Wenn Du
Zahlen wie hier vorlegst, dann bitte *nur* die Messungen mit mysql
(Kommandozeilenclient). Alles andere ist hier irrelevant.

Außerdem poste bitte das Statement und das dazugehörige Explain. Ohne
diese Informationen kann Dir hier niemand helfen (und auch das ist etwas
was hier ständig gesagt wird - wie wäre es denn mit *erst* lesen und
*dann* schreiben?)

Re: Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 19:41:59 von Christian Steffens

Christian Kirsch schrieb:

> Das Thema Zeichensätze etc. ist hier seit Monaten so gründlich
> durchgekaut worden, dass Du in dem entstandenen Brei sicherlich die
> nötigen Informationen findest -> Google ist Deine Freundin. Auch bei
> diesem Thema wäre aber grundsätzlich eine klare Beschreibung sinnvoll,
> wenn Du Hilfe suchst. "fehlerhafte" Zeichen versteht niemand außer Dir
> - was stand in der 4er Tabelle, was steht im Dump, und was zeigt Dir
> mysql (der Kommandozeilenclient) an (in welcher Umgebung - latin-1?
> utf-8?)
>

Ok, sehe ich ein - verlange auch nicht das ihr die gleiche Story zweimal
erzählt.


> Erstens weiß ich gar nicht, *warum* Du die Daten unbedingt ex- und
> wieder importieren möchtest. Ich kann hier problemlos mit 3.x
> erstellte Datenbanken mit 5.x bearbeiten. Nie irgendwas ex-/importiert.

Wie soll ich denn sonst die Datensätze bzw. einzelnen Datenbanken von
RechnerA auf RechnerB übertragen? Anders als mit Export/Import geht
sowas doch nicht, oder welche Variante schlägst du vor?

>
> Zweitens: Wenn Du meinst, exportieren zu müssen, dann bitte nur mit
> brauchbaren Werkzeugen, also in diesem Fall mit mysqldump. --help
> liefert Dir sämtliche Optionen, die das versteht - eine davon betrifft
> IIRC die Form des INSERT-Statements.

Navicat Mysql ist nur ein GUI mehr nicht, also alles Vorgänge mit
Import/Export basieren im Grunde auf mysqldump oder hotcopy - von daher
denke ich nicht, dass das Problem mit mit mysqldump in der Konsole zu
lösen ist.

>
> Drittens: Wenn es wieder Fehlermeldungen gibt: Welche? Was steht in
> der Zeile, auf die sich die Meldung bezieht?
>

Leider gibt Navicat nicht mehr Informationen zum Fehler - spricht
natürlich dafür direkt mysqldump zu verwenden, ein Grund der dafür spricht.

MfG
Christian

Re: Migration MySQL 4.0.26 auf 5.0.18

am 08.02.2006 22:22:45 von Axel Schwenke

Christian Steffens wrote:

> habe Probleme beim Umstieg von Mysql Version 4.0.26 auf Version 5.0.18
> jeweils unter Windows 2000 Prof. Habe knapp 30 Datenbanken verschiedener
> Größe die exportiert werden müssen.
>
> Ansich kein Problem, aber beim Export bzw. um genau zu sein beim IMPORT
> gibts einige 'errors'. Habe es per phpmyadmin, mysqldump und auch mit
> dem Navicat SQL-Manager probiert.

Noch ein paar Anmerkungen zu Christians Hinweisen:

1. Das Handbuch enthält spezielle Kapitel zum Thema "Upgrade von
Version A auf Version B". Die hast du scheints nicht gelesen.

2. Von 4.0 auf 5.0 überspringt eine Major Release. Mit 4.1. sind
eine Menge neuer Features eingeführt worden, u.a. Zeichensätze
und Collations für einzelne Datenbankobjekte. Diesen Abschnitt
des Manuals möchtest du ganz sicher lesen!

3. Dumpen und reimportieren ist *nicht* das Mittel der Wahl bei
einem Upgrade von MySQL. Neue Versionen können die Datenfiles
alter Versionen eigentlich immer lesen. Gelegentlich müssen
Indizes neu aufgebaut werden, das erwähnt dann aber das Manual.
Normalerweise verwendet man die Tablespaces einfach weiter.

4. Wenn du schon Dumpen und Reimportieren willst: verwende das
mysqldump der neueren MySQL-Version. Ein 4.0er mysqldump weiß
nichts über Collations oder Server-Mode und die Einstellungen
des neuen Servers müssen nicht immer mit den alten Dumps
harmonieren. Ein aktuelles mysqldump setzt diese Werte dann
passend für den Import.


XL

Re: Migration MySQL 4.0.26 auf 5.0.18

am 09.02.2006 09:01:38 von Christian Kirsch

Christian Steffens wrote:
> Christian Kirsch schrieb:
>
>>Erstens weiß ich gar nicht, *warum* Du die Daten unbedingt ex- und
>>wieder importieren möchtest. Ich kann hier problemlos mit 3.x
>>erstellte Datenbanken mit 5.x bearbeiten. Nie irgendwas ex-/importiert.
>
>
> Wie soll ich denn sonst die Datensätze bzw. einzelnen Datenbanken von
> RechnerA auf RechnerB übertragen? Anders als mit Export/Import geht
> sowas doch nicht, oder welche Variante schlägst du vor?
>

Es war nirgendwo die Rede von RechnerA und RechnerB, sondern lediglich
von zwei verschiedenen MySQL-Versionen. Drück' Dich klar aus, dann kann
man Dich auch verstehen. Abgesehen davon bist Du doch schon vor über
eine halben Stunde darauf gekommen, dass Du die Dateien einfach von
RechnerA auf RechnerB kopieren kannst.

>
>>Zweitens: Wenn Du meinst, exportieren zu müssen, dann bitte nur mit
>>brauchbaren Werkzeugen, also in diesem Fall mit mysqldump. --help
>>liefert Dir sämtliche Optionen, die das versteht - eine davon betrifft
>>IIRC die Form des INSERT-Statements.
>
>
> Navicat Mysql ist nur ein GUI mehr nicht, also alles Vorgänge mit
> Import/Export basieren im Grunde auf mysqldump oder hotcopy - von daher
> denke ich nicht, dass das Problem mit mit mysqldump in der Konsole zu
> lösen ist.
>
Ich denke, dass ich mich nicht mit Programmen von anderen Herstellern
und deren möglichen Bugs beschäftigen will. Relevant in diesem
Zusammenhang sind *nur* die Tools, die zu MySQL gehören. Wenn Du ein
Problem mit Navicat hast, dann frag deren Support.