Wenn Sie von einer 5.0-Installation auf 5.0.10 oder höher aktualisieren, beachten Sie, dass es unumgänglich ist, Ihre Grant-Tabellen zu aktualisieren. Andernfalls wird die Erstellung gespeicherter Prozeduren und Funktionen unter Umständen nicht funktionieren. Die entsprechende Vorgehensweise ist in Abschnitt 5.6, „mysql_fix_privilege_tables — Upgrade von MySQL-Systemtabellen“, beschrieben.
Hinweis: Es ist gängige Praxis, Ihre Daten vor der Installation einer neuen Softwareversion zu sichern. Auch wenn MySQL mit Eifer daran arbeitet, ein möglichst hohes Qualitätsniveau zu erzielen, sollten Sie Ihre Daten immer schützen, indem Sie eine Sicherungskopie erstellen. MySQL empfiehlt in der Regel, dass Sie Ihre Tabellen aus vorherigen Versionen speichern und dann neu laden, um auf 5.1 zu aktualisieren.
Generell sollten Sie beim Upgrade von MySQL 5.0 auf 5.1 Folgendes tun:
Überprüfen Sie die Einträge in den weiter unten in diesem Abschnitt vorhandenen Änderungslisten darauf, ob Ihre Anwendungen hierdurch auf irgendeine Weise betroffen sein könnten. Achten Sie dabei insbesondere auf solche Änderungen, die mit dem Vermerk Inkompatible Änderung versehen sind. Diese führen zu Inkompatibilitäten mit früheren MySQL-Versionen und können Ihre Aufmerksamkeit bereits vor Durchführung des Upgrades erfordern.
Lesen Sie die Änderungshistorie von MySQL 5.1 im Hinblick auf die wesentlichen neuen Funktionen, die Sie in Version 5.1 verwenden können. Siehe auch Abschnitt D.1, „Änderungen in Release 5.1.x (Entwicklung)“.
Wenn Sie MySQL Server unter Windows betreiben, lesen Sie Abschnitt 2.3.15, „Upgrade von MySQL unter Windows“.
Wenn Sie die Replikation nutzen, finden Sie in Abschnitt 6.7, „Upgrade eines Replikationssetups“, weitere Informationen zur Aktualisierung Ihrer Replikationskonfiguration.
Die nachfolgenden Listen beschreiben Änderungen, die unter Umständen Anwendungen betreffen können und die Sie beachten sollten, wenn Sie auf Version 5.1 aktualisieren.
Änderungen beim Server:
            Inkompatible Änderung:
            MySQL 5.1 implementiert die Unterstützung
            einer sehr flexiblen Plug-In-API, die das Laden und Entladen
            verschiedener Komponenten während der Laufzeit gestattet,
            ohne dass der Server neu gestartet werden müsste. Siehe
            auch Abschnitt 26.2, „Die MySQL-Plug-In-Schnittstelle“. Die Plug-In-API benötigt
            die Tabelle mysql.plugin. Wenn Sie von
            einer älteren MySQL-Version aktualisieren, sollten Sie den
            Befehl mysql_fix_privilege_tables
            ausführen, um diese Tabelle zu erstellen. Siehe auch
            Abschnitt 5.6, „mysql_fix_privilege_tables — Upgrade von MySQL-Systemtabellen“.
          
            Plug-Ins werden in das Verzeichnis installiert, welches in
            der Systemvariablen plugin_dir
            spezifiziert ist. Diese Variable steuert auch die Position,
            von der der Server benutzerdefinierte Funktionen
            (User-Defined Functions, UDFs) lädt; dies stellt eine
            Änderung zu früheren Versionen von MySQL dar. Mithin
            müssen alle UDF-Bibliotheksdateien von jetzt an in das
            Plug-In-Verzeichnis installiert werden. Wenn Sie von einer
            älteren MySQL-Version aktualisieren, müssen Sie Ihre
            UDF-Dateien in das Plug-In-Verzeichnis migrieren.
          
            Die Systemvariable table_cache wurde
            umbenannt in table_open_cache. Skripten,
            die table_cache verwenden, sollten so
            angepasst werden, dass sie den neuen Namen benutzen.
          
            Inkompatible Änderung: Die
            Struktur der FULLTEXT-Indizes wurde in
            MySQL 5.1.6 geändert. Nach der Aktualisierung auf MySQL
            5.1.6 oder höher müssen Sie die REPAIR
            TABLE-Anweisung für jede Tabelle aufrufen, die
            FULLTEXT-Indizes enthält.
          
SQL-Änderungen
            Inkompatible Änderung: Der
            Namespace für Trigger wurde in MySQL 5.0.10 geändert.
            Vorher mussten Trigger-Namen je Tabelle eindeutig sein. Nun
            muss eine Eindeutigkeit innerhalb des Schemas (Datenbank)
            gegeben sein. Eine Auswirkung dieser Änderung besteht
            darin, dass die Syntax DROP TRIGGER nun
            statt eines Tabellennamens einen Schemanamen verwendet
            (wobei dieser Schemaname optional ist; wird er weggelassen,
            dann wird das aktuelle Schema verwendet).
          
            Wenn Sie von einer vorherigen Version von MySQL 5 auf MySQL
            5.0.10 oder höher aktualisieren, müssen Sie alle Trigger
            löschen und sie neu erstellen; andernfalls wird
            DROP TRIGGER nach dem Upgrade nicht
            funktionieren. Gehen Sie am besten wie folgt vor:
          
                Aktualisieren Sie auf MySQL 5.0.10 oder höher, um auf
                die Trigger-Daten in der Tabelle
                INFORMATION_SCHEMA.TRIGGERS zugreifen
                zu können. (Dies sollte auch für Trigger aus Versionen
                vor 5.0.10 funktionieren.)
              
                Speichern Sie alle Trigger-Definitionen mithilfe der
                folgenden SELECT-Anweisung:
              
SELECT CONCAT('CREATE TRIGGER ', t.TRIGGER_SCHEMA, '.', t.TRIGGER_NAME,
              ' ', t.ACTION_TIMING, ' ', t.EVENT_MANIPULATION, ' ON ',
              t.EVENT_OBJECT_SCHEMA, '.', t.EVENT_OBJECT_TABLE,
              ' FOR EACH ROW ', t.ACTION_STATEMENT, '//' )
INTO OUTFILE '/tmp/triggers.sql'
FROM INFORMATION_SCHEMA.TRIGGERS AS t;
                Die Anweisung verwendet INTO OUTFILE,
                d. h., Sie müssen die Berechtigung
                FILE haben. Die Datei wird auf dem
                Serverhost erstellt; wenn Sie wollen, können Sie einen
                anderen Dateinamen verwenden. Um hundertprozentig sicher
                zu sein, überprüfen Sie die Trigger-Definitionen in
                der Datei triggers.sql und fertigen
                unter Umständen eine Sicherung der Datei an.
              
                Beenden Sie den Server und löschen Sie alle Trigger,
                indem Sie sämtliche .TRG-Dateien
                in Ihren Datenbankverzeichnissen entfernen. Wechseln Sie
                dann in Ihr Datenverzeichnis und setzen Sie folgenden
                Befehl ab:
              
shell> rm */*.TRG
                Starten Sie den Server und erstellen Sie alle Trigger
                mithilfe der triggers.sql-Datei
                neu: In meinem Fall sah dies beispielsweise so aus:
              
mysql>delimiter // ;mysql>source /tmp/triggers.sql //
                Vergewissern Sie sich, dass alle Trigger mit der
                SHOW TRIGGERS-Anweisung erfolgreich
                erstellt wurden.
              
            Inkompatible Änderung:
            MySQL 5.1.6 hat die Berechtigung TRIGGER
            neu eingeführt. Zuvor benötigte man die Berechtigung
            SUPER zum Erstellen oder Löschen von
            Triggern. Jetzt ist für derartige Vorgänge die
            Berechtigung TRIGGER erforderlich. Dies
            ist eine Sicherheitsoptimierung, da Sie Benutzern nun nicht
            länger die Berechtigung SUPER gewähren
            müssen, damit diese Trigger erstellen können. Allerdings
            wurde die Anforderung, dass das Konto, welches in der
            DEFINER-Klausel eines Triggers genannt
            wird, die Berechtigung SUPER haben muss,
            dadurch ersetzt, dass das Konto nun die Berechtigung
            TRIGGER erfordert. Wenn Sie von einer
            früheren MySQL 5-Version auf MySQL 5.1.6 oder höher
            aktualisieren, sollten Sie überprüfen, welche Konten in
            der DEFINER-Klausel vorhandener Trigger
            aufgeführt sind, und sicherstellen, dass diese Konten die
            Berechtigung TRIGGER haben. Andernfalls
            werden sie bei Aktivierung fehlschlagen. Mit der folgenden
            Anweisung können Sie ermitteln, welche Konten in den
            DEFINER-Klauseln aufgeführt sind:
          
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.TRIGGERS;
            Wenn Sie diesen Konten die Berechtigung
            TRIGGER gewährt haben, können Sie die
            Berechtigung SUPER für diejenigen Konten
            widerrufen, die Sie nicht anderweitig benötigen.
          
Einige Schlüsselwörter sind in MySQL 5.1 reserviert, bei denen dies in MySQL 5.0 nicht der Fall war. Siehe auch Abschnitt 9.5, „Ist MySQL pingelig hinsichtlich reservierter Wörter?“.
            Die Anweisungen INSTALL PLUGIN und
            UNINSTALL PLUGIN, die für die
            Plug-In-API verwendet werden, sind neu. Gleiches gilt für
            die Klausel WITH PARSER der
            FULLTEXT-Indexerstellung, die ein
            Parser-Plug-In mit einem Volltextindex verknüpft.
            Abschnitt 26.2, „Die MySQL-Plug-In-Schnittstelle“.
          
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

