92 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
oder DROP INDEX zu benutzen. Wenn Ihr MySQL-Root ein Passwort ben¨otigt, m¨ussen Sie
dieses als Argument zu mysql_fix_privilege_tables angeben.
Die C-API-Schnittstelle f¨ur mysql_real_connect() hat sich ge¨andert. Wenn Sie ein
altes Client-Programm haben, das diese Funktion aufruft, m¨ussen Sie eine 0 als neues
db-Argument einf¨ugen (oder den Client neu kodieren, so dass er das db-Element f¨ur
schnellere Verbindungen benutzt). Zus¨atzlich m¨ussen Sie mysql_init() aufrufen, bevor
Sie mysql_real_connect() aufrufen! Diese
¨
Anderung wurde durchgef¨uhrt, damit die neue
mysql_options()-Funktion in der MYSQL-Handler-Struktur Optionen speichern kann.
The mysqld-Variable key_buffer wurde umbenannt in key_buffer_size, Sie k¨onnen aber
in Ihren Startdateien immer noch den alten Namen verwenden.
3.5.4 Upgrade von Version 3.20 auf Version 3.21
Wenn Sie eine Version benutzen, die ¨alter als Version 3.20.28 ist, und auf Version 3.21
umstellen wollen, m¨ussen Sie folgendes tun:
Sie k¨onnen den mysqld-Server Version 3.21 mit safe_mysqld --old-protocol starten, um
ihn mit Clients aus einer Distribution Version 3.20 zu benutzen. In diesem Fall gibt die neue
Client-Funktion mysql_errno() ¨uberhaupt keine Server-Fehler zur¨uck, nur CR_UNKNOWN_
ERROR (funktioniert aber bei Client-Fehlern), und der Server benutzt die alte password()-
¨
Uberpr¨ufung statt der neuen.
Wenn Sie die --old-protocol-Option NICHT f¨ur mysqld benutzen, m¨ussen Sie folgende
¨
Anderungen durchf¨uhren:
• Jeder Client-Code muss neu kompiliert werden. Wenn Sie ODBC benutzen, m¨ussen
Sie die neuen MyODBC-2.x-Treiber verwenden.
• Sie m¨ussen das Skript Skripts/add_long_password laufen lassen, um das Password-
Feld in der mysql.user-Tabelle zu CHAR(16) zu ¨andern.
• Alle Passw¨orter m¨ussen in der mysql.user-Tabelle neu zugewiesen werden (um 62-Bit-
statt 31-Bit-Passw¨orter zu erhalten).
• Das Tabellenformat hat sich nicht ge¨andert, daher m¨ussen Sie keinerlei Tabellen kon-
vertieren.
MySQL-Version 3.20.28 und h¨oher kann das neue user-Tabellenformat handhaben, ohne
sich auf Clients auszuwirken. Wenn Sie eine MySQL-Version vor Version 3.20.28 haben,
funktionieren Passw¨orter damit nicht mehr, wenn Sie die user-Tabelle konvertieren. Um
auf Nummer Sicher zu gehen, sollten Sie mindestens auf Version 3.20.28 aktualisieren und
erst dann auf Version 3.21.
Der neue Client-Code funktioniert bei einem 3.20.x mysqld-Server. Wenn Sie daher Prob-
leme mit 3.21.x bekommen, k¨onnen Sie den alten 3.20.x-Server benutzen, ohne die Clients
neu kompilieren zu m¨ussen.
Wenn Sie nicht die --old-protocol-Option f¨ur mysqld benutzen, werden alte Clients fol-
gende Fehlermeldung ausgeben:
ERROR: Protocol mismatch. Server Version = 10 Client Version = 9
Die neue Perl-DBI/DBD-Schnittstelle unterst¨utzt auch die alte mysqlperl-Schnittstelle. Die
einzige
¨
Anderung, die Sie machen m¨ussen, wenn Sie mysqlperl benutzen, ist, die Argumente
Komentarze do niniejszej Instrukcji