Kompatibilitätzwischen unterschiedlichen MySQL-Versionen auf Client und Server

Kompatibilitätzwischen unterschiedlichen MySQL-Versionen auf Client und Server

am 23.04.2007 09:59:24 von Andreas Pietzowski

Hallo,

ist es eigetnlcih problemlos möglich, dass der Server beispeilsweise die
Version 4 trägt und ein Client mit einer DLL der Version 5 auf diese 4er-DB
zugreift? Geht es auch problemlos andersrum, also dass der Client neuer
ist, als die Datenbank?

Ich konnte in der Dokumentation leider nichts genaues dazu finden...

Danke
Andreas

Re: Kompatibilitätzwischen unterschiedlichen MySQL-Versionen auf Client und Server

am 23.04.2007 13:09:46 von Axel Schwenke

Andreas Pietzowski wrote:
>
> ist es eigetnlcih problemlos möglich, dass der Server beispeilsweise die
> Version 4 trägt und ein Client mit einer DLL der Version 5 auf diese 4er-DB
> zugreift? Geht es auch problemlos andersrum, also dass der Client neuer
> ist, als die Datenbank?
>
> Ich konnte in der Dokumentation leider nichts genaues dazu finden...

Das ist möglich, aber nicht immer problemlos. Das Client/Server
Protokoll wurde nur einmal wesentlich verändert - mit der Einführung
von serverseitigen prepared statements in 4.1. Beim initialen Handshake
(vulgo: Login) tauschen Client und Server die Information aus, ob sie
die 4.1 Erweiterungen kennen oder nicht. So können prinzipiell alle
Versionen miteinander reden.

Der Teufel steckt im Detail. So wurde z.B. mit 4.1 ein sichereres
Hash-Verfahren für die MySQL-Paßwörter eingeführt. Entweder kann der
Client das neue Hashverfahren (wurde in späte 4.0 und wohl auch 3.23
Versionen rückportiert) oder der Server muß die Paßwörter nach dem
alten Verfahren hashen:
http://dev.mysql.com/doc/refman/4.1/en/old-client.html

Eine weitere Inkompatibilität ist der NEWDECIMAL Typ (eingeführt mit
5.0). Wenn man prepared statements verwendet und eine der beiden Seiten
kennt NEWDECIMAL noch nicht, gibts also auch einen Fehler.

Aber im großen und ganzen funktioniert es.


XL