Die Firma Oracle hat einen neuen Branch der Datenbank MySQL 8.2 erstellt und die Korrekturupdates MySQL 8.0.35 und 5.7.44 veröffentlicht. Die Builds des MySQL Community Server 8.2.0 sind fĂŒr alle wichtigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet.
MySQL 8.2.0 ist die zweite Version, die im Rahmen des neuen Release-Modells entwickelt wurde, das zwei Arten von MySQL-Branches vorsieht â "Innovation" und "LTS". Die Innovation-Branches, zu denen MySQL 8.1 und 8.2 gehören, werden empfohlen fĂŒr diejenigen, die frĂŒhzeitig Zugang zu neuen Funktionen wĂŒnschen. Diese Branches werden alle drei Monate veröffentlicht und nur bis zur Veröffentlichung des nĂ€chsten signifikanten Releases unterstĂŒtzt (zum Beispiel wird die UnterstĂŒtzung des Branches 8.1 nach der Veröffentlichung des Branches 8.2 eingestellt). Die LTS-Branches werden fĂŒr Implementierungen empfohlen, die Vorhersehbarkeit und eine langanhaltende StabilitĂ€t erfordern. LTS-Branches werden alle zwei Jahre veröffentlicht und fĂŒnf Jahre lang regulĂ€r unterstĂŒtzt, mit der Möglichkeit, weitere drei Jahre erweiterte UnterstĂŒtzung zu erhalten. Im FrĂŒhling 2024 wird das LTS-Release MySQL 8.4 erwartet, nach dem ein neuer Innovation-Branch 9.0 gebildet wird.
Wesentliche Ănderungen in MySQL 8.2:
- Die UnterstĂŒtzung fĂŒr den auf der Webauthn (FIDO2) Spezifikation basierenden Authentifizierungsmechanismus wurde hinzugefĂŒgt, der die Anwendung von multifaktorieller Authentifizierung ermöglicht und die Verbindung zu Server MySQL ohne Passwörter mittels Hardware-Token mit FIDO2-UnterstĂŒtzung oder biometrischer Authentifizierung bestĂ€tigt. Das Webauthn-Plugin ist derzeit nur fĂŒr MySQL Enterprise verfĂŒgbar.
- Das Server-Plugin mysql_native_password, das die Authentifizierung ĂŒber Passwörter ermöglicht, wurde in die Kategorie optional eingestuft und kann deaktiviert werden. Stattdessen wird empfohlen, das Plugin caching_sha2_password zu verwenden, das den Hash-Algorithmus SHA2 anstelle von SHA1 nutzt. Um Benutzer auf das Plugin caching_sha2_password umzustellen und das Passwort durch ein zufĂ€lliges zu ersetzen, kann der folgende Befehl verwendet werden: ALTER USER âusernameâ@âlocalhostâ IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
- Die Hash-Tabellen wurden optimiert, was die AusfĂŒhrung von EXCEPT- und INTERSECT-Operationen beschleunigt hat.
- Die Debugging-Möglichkeiten wurden erweitert. In den Operationen SELECT, INSERT, REPLACE, UPDATE und DELETE wurde die UnterstĂŒtzung fĂŒr den Ausdruck "EXPLAIN FORMAT=JSON" hinzugefĂŒgt, um eine diagnostische Ausgabe im JSON-Format zu erzeugen (z. B. "EXPLAIN FORMAT=JSON INTO @var select_stmt;").
- Der Ausdruck "EXPLAIN FOR SCHEMA" wurde hinzugefĂŒgt, um Diagnosen auszugeben, die sich nur auf ein bestimmtes Datenschema beziehen.
- Das mysqldump-Tool enthĂ€lt nun die Option "âoutput-as-version", um Dumps zu erstellen, die mit einer bestimmten Ă€lteren Version von MySQL kompatibel sind (z. B. kann BEFORE_8_2_0 oder BEFORE_8_0_23 angegeben werden, um die nicht politisch korrekte Terminologie master/slave zurĂŒckzugeben, die in den Versionen 8.2.0 und 8.0.23 als veraltet erklĂ€rt wurde).
- In die C-Client-Bibliothek wurde die Möglichkeit aufgenommen, benannte Attribute in parametrisierten Abfragen (Prepared Statements) zu verwenden, die durch die neue Funktion mysql_stmt_bind_named_param() realisiert werden, welche die Funktion mysql_stmt_bind_param() ersetzt.
- Die Verteilung des SQL-Datenverkehrs im Cluster von MySQL-Servern wurde vereinfacht. Es wurden Möglichkeiten geschaffen, um transparente Verbindungen zu sekundĂ€ren oder primĂ€ren Servern fĂŒr Anwendungen zu organisieren.
- Eine neue Berechtigung SET_ANY_DEFINER wurde hinzugefĂŒgt, die das Recht zur Erstellung von Objekten mit dem DEFINER-Ausdruck sowie die Berechtigung ALLOW_NONEXISTENT_DEFINER zum Schutz von Objekten ohne Besitzer gewĂ€hrt.
- Die Variablen old und new, die Platzhalter â%â und â_â in Zugriffsoperationen auf die Datenbank, die Option ââcharacter-set-client-handshakeâ, die Variable binlog_transaction_dependency_tracking sowie die Berechtigung SET_USER_ID wurden als veraltet erklĂ€rt.
- Im Rahmen der Anpassung politisch inkorrekter Terminologie im Zusammenhang mit der Replikation wurden die AusdrĂŒcke âRESET MASTERâ, âSHOW MASTER STATUSâ, âSHOW MASTER LOGSâ und âPURGE MASTER LOGSâ als veraltet erklĂ€rt. Stattdessen sollten die AusdrĂŒcke âRESET BINARY LOGS AND GTIDSâ, âSHOW BINARY LOG STATUSâ, âSHOW BINARY LOGSâ und âPURGE BINARY LOGSâ verwendet werden.
- Möglichkeiten, die zuvor als veraltet erklĂ€rt wurden, wurden entfernt: die Funktion WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), die Variable expire_logs_days sowie die Optionen ââabort-slave-event-countâ und ââdisconnect-slave-event-countâ.
- 26 SicherheitsanfÀlligkeiten wurden behoben. Zwei AnfÀlligkeiten, die mit der Verwendung des Curl-Pakets und der OpenSSL-Bibliothek verbunden sind, können aus der Ferne ausgenutzt werden.
Quelle: opennet.ru
