Die Oracle Corporation hat einen neuen Branch der relationalen Datenbank MySQL 8.4 erstellt und das Korrekturupdate MySQL 8.0.37 veröffentlicht. Die Builds des MySQL Community Servers 8.4.0 sind fĂŒr alle gĂ€ngigen Linux-Distributionen, FreeBSD, macOS und Windows verfĂŒgbar. Die Version 8.4.0 gehört zu den Long-Term Support (LTS) Branches, die alle zwei Jahre veröffentlicht werden und fĂŒnf Jahre UnterstĂŒtzung bieten (plus bis zu drei Jahre erweiterte UnterstĂŒtzung).
MySQL 8.4.0 ist die vierte Veröffentlichung, die im Rahmen des neuen Release-Modells erstellt wurde, das zwei Arten von MySQL-Branches vorsieht â "Innovation" und "LTS". Die Innovation-Branches, zu denen MySQL 8.1, 8.2 und 8.3 zĂ€hlen, werden empfohlen fĂŒr diejenigen, die frĂŒher Zugang zu neuen Funktionen erhalten möchten. Diese Branches werden alle drei Monate veröffentlicht und nur bis zur Veröffentlichung des nĂ€chsten bedeutenden Releases unterstĂŒtzt (zum Beispiel wird nach dem Erscheinen des Branches 8.4 die UnterstĂŒtzung fĂŒr den Branch 8.3 eingestellt). LTS-Branches werden fĂŒr Implementierungen empfohlen, die Vorhersehbarkeit und eine langfristige unverĂ€nderte FunktionalitĂ€t benötigen. Nach dem LTS-Branch wird ein neuer Innovation-Branch â MySQL 9.0 â erstellt.
Wesentliche Ănderungen in MySQL 8.4:
- Der Optimierer hat die UnterstĂŒtzung fĂŒr die automatische Aktualisierung von Histogrammen hinzugefĂŒgt, unabhĂ€ngig von der AusfĂŒhrung der Operation "ANALYZE TABLE" fĂŒr die ĂŒbergeordnete Tabelle. Die automatische Aktualisierung wird durch die Angabe des Ausdrucks "AUTO UPDATE" wĂ€hrend der AusfĂŒhrung der Operation "ANALYZE TABLE" aktiviert und durch die Angabe des Ausdrucks "MANUAL UPDATE", der standardmĂ€Ăig verwendet wird, deaktiviert.
- Die Optionen "âkeyring-migration-from-component", "âkeyring-migration-source" und "âkeyring-migration-destination" wurden hinzugefĂŒgt, um die Migration von der Keyring-Komponente zum Keyring-Plugin zu ermöglichen.
- Eine neue Berechtigung FLUSH_PRIVILEGES wurde hinzugefĂŒgt, die im Gegensatz zur zuvor verfĂŒgbaren Berechtigung RELOAD dem Benutzer nur die Berechtigung zur AusfĂŒhrung der Operation "FLUSH PRIVILEGES" gewĂ€hrt.
- Eine neue Berechtigung OPTIMIZE_LOCAL_TABLE wurde hinzugefĂŒgt, die es dem Benutzer ermöglicht, die Operationen "OPTIMIZE LOCAL TABLE" und "OPTIMIZE NO_WRITE_TO_BINLOG TABLE" auszufĂŒhren.
- Die Standardwerte der Systemvariablen group_replication_consistency und group_replication_exit_state_action wurden geÀndert. Die Variable group_replication_consistency wird jetzt auf den Wert BEFORE_ON_PRIMARY_FAILOVER anstelle von EVENTUAL eingestellt, wÀhrend die Variable group_replication_exit_state_action auf den Wert OFFLINE_MODE anstelle von READ_ONLY gesetzt wird.
- In den Builds, die mit der integrierten OpenSSL-Bibliothek geliefert werden, wird die neue Version OpenSSL 3.0.13 verwendet.
- Direkte Updates von MySQL 5.7 auf MySQL 8.4 wurden eingestellt. FĂŒr den Wechsel von MySQL 5.7 muss zunĂ€chst auf die Version 8.0 umgestiegen werden, bevor ein Update auf 8.4 erfolgt.
- Die Standardwerte der folgenden InnoDB-Einstellungen wurden geÀndert: innodb_adaptive_hash_index, innodb_buffer_pool_in_core_file, innodb_buffer_pool_instances, innodb_change_buffering, innodb_doublewrite_files, innodb_doublewrite_pages, innodb_flush_method, innodb_io_capacity, innodb_io_capacity_max, innodb_log_buffer_size, innodb_numa_interleave, innodb_page_cleaners, innodb_parallel_read_threads, innodb_purge_threads, innodb_read_io_threads, innodb_use_fdatasync, temptable_max_ram, temptable_max_mmap und temptable_use_mmap.
- UnterstĂŒtzung fĂŒr das Erstellen von Paketen fĂŒr die Distributionen Fedora 40 und Ubuntu 24.04 hinzugefĂŒgt.
- Das Server-Plugin mysql_native_password, das die Authentifizierung mit Passwörtern ermöglicht, ist standardmĂ€Ăig deaktiviert und als veraltet deklariert. Statt mysql_native_password wird empfohlen, auf das Plugin caching_sha2_password umzusteigen, das den SHA2-Algorithmus anstelle von SHA1 zur Hashing verwendet. Um die UnterstĂŒtzung von mysql_native_password wiederherzustellen, kann die Option "--mysql-native-password=ON" oder die Einstellung "mysql_native_password=ON" verwendet werden.
- Die UnterstĂŒtzung unsicherer Protokolle und VerschlĂŒsselungsalgorithmen wurde eingestellt. Es sind nur noch TLS v1.2 und TLS v1.3, Algorithmen, die direkte Geheimhaltung (forward secrecy) gewĂ€hrleisten, sowie Chiffren und Zertifikate mit SHA2 und Algorithmen wie AES im GCM- oder AEAD-Modus verfĂŒgbar.
- SQL-Anweisungen, die mit Replikation zu tun haben und zuvor aufgrund der Verwendung unangemessener Terminologie als veraltet erklÀrt wurden, wurden entfernt: START SLAVE (es sollte START REPLICA verwendet werden); STOP SLAVE (es sollte STOP REPLICA verwendet werden); SHOW SLAVE STATUS (es sollte SHOW REPLICA STATUS verwendet werden); SHOW SLAVE HOSTS (SHOW REPLICAS); RESET SLAVE (RESET REPLICA); CHANGE MASTER TO (CHANGE REPLICATION SOURCE TO); RESET MASTER (RESET BINARY LOGS AND GTIDS); SHOW MASTER STATUS (SHOW BINARY LOG STATUS); PURGE MASTER LOGS (PURGE BINARY LOGS); SHOW MASTER LOGS (SHOW BINARY LOGS).
- FrĂŒhere als veraltet erklĂ€rte Optionen, die in den AusdrĂŒcken âCHANGE REPLICATION SOURCE TOâ und âSTART REPLICAâ verwendet wurden, sowie das Wort âmasterâ, das durch âsourceâ ersetzt wurde, wurden entfernt: SOURCE_AUTO_POSITION (sollte verwendet werden), SOURCE_HOST (sollte verwendet werden), SOURCE_BIND (sollte verwendet werden), SOURCE_USER, SOURCE_PASSWORD, SOURCE_PORT, SOURCE_CONNECT_RETRY, SOURCE_RETRY_COUNT, SOURCE_DELAY, SOURCE_SSL, SOURCE_SSL_CA, SOURCE_SSL_CAPATH, SOURCE_SSL_CIPHER, SOURCE_SSL_CRL, SOURCE_SSL_CRLPATH, SOURCE_SSL_KEY, SOURCE_SSL_VERIFY_SERVER_CERT, SOURCE_TLS_VERSION, SOURCE_TLS_CIPHERSUITES, SOURCE_SSL_CERT, SOURCE_PUBLIC_KEY_PATH, GET_SOURCE_PUBLIC_KEY, SOURCE_HEARTBEAT_PERIOD, SOURCE_COMPRESSION_ALGORITHMS, SOURCE_ZSTD_COMPRESSION_LEVEL, SOURCE_LOG_FILE, SOURCE_LOG_POS.
- Systemvariablen, die die Begriffe âmasterâ und âslaveâ verwendeten, wurden entfernt: Com_replica_start (sollte verwendet werden); Com_replica_stop; Com_show_replica_status; Com_show_replicas; Com_show_binary_log_status; und Com_change_replication_source.
- Die Systemvariable group_replication_allow_local_lower_version_join wurde als veraltet erklĂ€rt. FrĂŒhere als veraltet erklĂ€rte Optionen ââno-dd-upgradeâ, ââoldâ, âânewâ, ââlanguageâ, ââsslâ, ââadmin-sslâ sowie die Variablen binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals und default_authentication_plugin wurden entfernt.
- Die ungenutzte Tabelle INFORMATION_SCHEMA.TABLESPACES wurde entfernt.
- Die UnterstĂŒtzung fĂŒr die Verwendung des Wertes LOW_PRIORITY in Verbindung mit dem Ausdruck âLOCK TABLES ⊠WRITEâ wurde eingestellt.
- Die UnterstĂŒtzung fĂŒr die Verwendung des Modifikators AUTO_INCREMENT mit den Datentypen FLOAT und DOUBLE wurde eingestellt.
- Das Dienstprogramm mysql_ssl_rsa_setup wurde entfernt â bei der Kompilierung mit OpenSSL. Server MySQL kann fehlende SSL- und RSA-Dateien beim Start automatisch generieren.
- Das Dienstprogramm mysql_upgrade, das nicht mit der MySQL-Version 8.0.16 verwendet wird, wurde entfernt.
- Die Dienstprogramme mysqlpump, lz4_decompress und zlib_decompress wurden entfernt, stattdessen sollten die Dienstprogramme mysqldump oder die Dump-Befehle der interaktiven Shell verwendet werden.
- Die Plugins authentication_fido, authentication_fido_client (sollte authentication_webauthn verwenden); keyring_file (sollte component_keyring_file verwenden); keyring_encrypted_file (sollte component_keyring_encrypted_file verwenden); keyring_oci (sollte component_keyring_oci verwenden) wurden entfernt.
- Die UnterstĂŒtzung des Ausdrucks ENGINE wurde zusammen mit verschiedenen Varianten von âDROP TABLESPACEâ und âALTER TABLESPACEâ eingestellt.
- Das Privileg âSET_USER_IDâ wurde entfernt, das nicht mehr in GRANT-AusdrĂŒcken angegeben werden kann.
- Die API-Funktionen mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() und mysql_ssl_set() wurden zurĂŒckgefĂŒhrt, wovon einige mithilfe der Funktion mysql_real_query() ĂŒberarbeitet wurden. Diese Funktionen wurden in der MySQL-Version 8.3 entfernt, aber zur UnterstĂŒtzung in der LTS-Version MySQL 8.4 wiederhergestellt.
- Es wurden 26 SicherheitsanfÀlligkeiten behoben, die aus der Ferne ausgenutzt werden können. Das schwerwiegendste Problem hat ein Gefahrenniveau von 6,5 und hÀngt mit einer SicherheitsanfÀlligkeit in OpenSSL zusammen. Weniger gefÀhrliche Schwachstellen betreffen den Optimierer, InnoDB, Thread Pooling, das Group Replication Plugin, das Audit Plugin, DML und mysqldump.
Quelle: opennet.ru
