Oracle heeft een nieuwe tak van de database MySQL 8.2 gevormd en correctie-updates MySQL 8.0.35 en 5.7.44 gepubliceerd. De builds van MySQL Community Server 8.2.0 zijn voorbereid voor alle belangrijke Linux-distributies, FreeBSD, macOS en Windows.
MySQL 8.2.0 is de tweede release die is ontwikkeld onder het nieuwe releasemodel, dat twee soorten MySQL-takken omvat: 'Innovation' en 'LTS'. De Innovation-takken, waaronder MySQL 8.1 en 8.2, worden aanbevolen voor degenen die eerder toegang willen tot nieuwe functionaliteit. Deze takken worden elke 3 maanden gepubliceerd en worden alleen ondersteund tot de publicatie van de volgende belangrijke release (bijvoorbeeld, de ondersteuning voor de 8.1-tak eindigt na de release van de 8.2-tak). De LTS-takken worden aanbevolen voor implementaties waarbij voorspelbaarheid en langdurig behoud van ongewijzigd gedrag nodig zijn. LTS-takken worden elke twee jaar uitgebracht en reguliere ondersteuning wordt voor 5 jaar geboden, met de mogelijkheid van nog eens 3 jaar uitgebreide ondersteuning. De LTS-release van MySQL 8.4 wordt in het voorjaar van 2024 verwacht, waarna de nieuwe Innovation-tak 9.0 zal worden gevormd.
Belangrijkste veranderingen in MySQL 8.2:
- Ondersteuning voor een authenticatiemechanisme op basis van de Webauthn-specificatie (FIDO2) is toegevoegd, waarmee multi-factorauthenticatie mogelijk is en verbindingen met server MySQL zonder wachtwoorden kunnen worden bevestigd, waarbij gebruik wordt gemaakt van hardwaretokens die FIDO2 ondersteunen of biometrische authenticatie. De plugin met Webauthn-ondersteuning is voorlopig alleen beschikbaar voor MySQL Enterprise.
- De serverplugin mysql_native_password, die authenticatie met wachtwoorden mogelijk maakt, is verplaatst naar de categorie optioneel en kan worden uitgeschakeld. In plaats van mysql_native_password wordt het gebruik van de plugin caching_sha2_password aanbevolen, die de SHA2-algoritme voor hashing gebruikt in plaats van SHA1. Om gebruikers over te schakelen naar de plugin caching_sha2_password met een willekeurig wachtwoord, kan de volgende opdracht worden gebruikt: ALTER USER ‘username’@’localhost’ IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
- Er is een optimalisatie van hashtabellen doorgevoerd, waardoor het uitvoeren van de EXCEPT- en INTERSECT-operaties is versneld.
- De debugmogelijkheden zijn uitgebreid. In de bewerkingen SELECT, INSERT, REPLACE, UPDATE en DELETE is ondersteuning toegevoegd voor de expressie 'EXPLAIN FORMAT=JSON' om diagnostische uitvoer in JSON-formaat te genereren (bijvoorbeeld, 'EXPLAIN FORMAT=JSON INTO @var select_stmt;').
- De uitdrukking "EXPLAIN FOR SCHEMA" is toegevoegd voor het weergeven van diagnostiek die alleen betrekking heeft op een specifieke gegevensschema.
- De optie "—output-as-version" is toegevoegd aan de mysqldump-tool om dumps te creëren die compatibel zijn met een bepaalde oudere versie van MySQL (bijvoorbeeld kan je BEFORE_8_2_0 of BEFORE_8_0_23 opgeven om de niet-politiek correcte terminologie master/slave, die in de versies 8.2.0 en 8.0.23 als verouderd is verklaard, te retourneren).
- In de client C-bibliotheek is de mogelijkheid toegevoegd om benoemde attributen te gebruiken in parameterized queries (prepared statements), gerealiseerd met behulp van de nieuwe functie mysql_stmt_bind_named_param(), die de functie mysql_stmt_bind_param() vervangt.
- De verdeling van SQL-verkeer in clusters van MySQL-servers is vereenvoudigd. Er zijn mogelijkheden aangeboden voor het organiseren van transparante verbindingen voor applicaties naar secundaire of primaire servers.
- Een nieuwe privilege SET_ANY_DEFINER is toegevoegd, die het recht biedt om objecten met een DEFINER-uitdrukking te creëren, evenals de privilege ALLOW_NONEXISTENT_DEFINER ter bescherming van objecten zonder eigenaar.
- De volgende zijn als verouderd verklaard: de variabelen old en new, de masks "%" en "_" in database toegangsverstrekkingen, de optie "—character-set-client-handshake", de variabele binlog_transaction_dependency_tracking en de privilege SET_USER_ID.
- Binnen de correctie van niet-politiek correcte terminologie met betrekking tot replicatie, zijn de uitdrukkingen "RESET MASTER", "SHOW MASTER STATUS", "SHOW MASTER LOGS" en "PURGE MASTER LOGS" als verouderd verklaard, in plaats waarvan de uitdrukkingen "RESET BINARY LOGS AND GTIDS", "SHOW BINARY LOG STATUS", "SHOW BINARY LOGS" en "PURGE BINARY LOGS" moeten worden gebruikt.
- De eerder als verouderd verklaarde mogelijkheden zijn verwijderd: de functie WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), de variabele expire_logs_days, de opties "—abort-slave-event-count" en "—disconnect-slave-event-count".
- Er zijn 26 kwetsbaarheden verholpen. Twee kwetsbaarheden gerelateerd aan het gebruik van het Curl-pakket en de OpenSSL-bibliotheek kunnen op afstand worden uitgebuit.
Bron: opennet.ru
