Podjetje Oracle je ustvarilo novo vejo sistema za upravljanje baz podatkov MySQL 8.2 in objavilo popravke za MySQL 8.0.35 in 5.7.44. Gradnje MySQL Community Server 8.2.0 so pripravljene za vse glavne distribucije Linuxa, FreeBSD, macOS in Windows.
MySQL 8.2.0 je drugi izpust, oblikovan v okviru novega modela za oblikovanje izdaj, ki predvideva obstoj dveh vrst vej MySQL — „Innovation“ in „LTS“. Veje Innovation, v katere spadajo MySQL 8.1 in 8.2, so priporočene za tiste, ki želijo prej dostopati do nove funkcionalnosti. Te veje se objavljajo vsakih 3 mesece in so podprte le do objave naslednje pomembne različice (na primer, po pojavu veje 8.2 se preneha podpora veji 8.1). Veje LTS so priporočene za implementacije, ki potrebujejo predvidljivost in dolgo trajajoče ohranjanje nespremenjenega vedenja. Veje LTS bodo izhajale vsaka dva leta in se redno podpirale 5 let, poleg tega pa bo na voljo še 3 leta razširjene podpore. Spomladi 2024 pričakujemo LTS-izdajo MySQL 8.4, po kateri bo oblikovana nova veja Innovation 9.0.
Glavne spremembe v MySQL 8.2:
- Dodana je podpora za mehanizem avtentikacije na podlagi specifikacije Webauthn (FIDO2), kar omogoča izvajanje večfaktorske avtentikacije in potrjevanje povezave z strežniku MySQL brez gesel, z uporabo strojnih ključe z podporo FIDO2 ali biometrične avtentikacije. Vtičnik z podporo Webauthn je trenutno na voljo le za MySQL Enterprise.
- Strežni vtičnik mysql_native_password, ki omogoča avtentikacijo s pomočjo gesel, je bil premeščen v razred neobveznih in ga je mogoče onemogočiti. Namesto mysql_native_password se priporoča prehod na uporabo vtičnika caching_sha2_password, ki za hashiranje uporablja algoritem SHA2 namesto SHA1. Za preklop uporabnikov na vtičnik caching_sha2_password z zamenjavo gesla na naključno lahko uporabite ukaz: ALTER USER ‘username’@’localhost’ IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
- Optimizirane so bile hash tabele, kar je pospešilo izvajanje operacij EXCEPT in INTERSECT.
- Razširjene so možnosti odpravljanja napak. Pri operacijah SELECT, INSERT, REPLACE, UPDATE in DELETE je dodana podpora za izraz „EXPLAIN FORMAT=JSON“ za generiranje diagnosticnega izhoda v formatu JSON (na primer, „EXPLAIN FORMAT=JSON INTO @var select_stmt;“).
- Dodana je izraz «EXPLAIN FOR SCHEMA» za prikaz dijagnostike koja se odnosi samo na određeni shemu podataka.
- U alat mysqldump dodana je opcija «—output-as-version» za stvaranje dumpova koji su kompatibilni sa određenom starijom verzijom MySQL (na primjer, možete navesti BEFORE_8_2_0 ili BEFORE_8_0_23 za vraćanje politički nekorektne terminologije master/slave, koja je označena kao zastarjela u izdanjima 8.2.0 i 8.0.23).
- U klijentsku C biblioteku dodana je mogućnost korištenja imenovanih atributa u parametarskim upitima (prepared statement), implementiranim putem nove funkcije mysql_stmt_bind_named_param(), koja je zamijenila funkciju mysql_stmt_bind_param().
- P pojednostavljeno raspoređivanje SQL prometa u klasteru MySQL servera. Pružene su mogućnosti za organizaciju transparentnih veza za aplikacije s sekundarnim ili primarnim serverima.
- Dodana je nova privilegija SET_ANY_DEFINER, koja omogućava stvaranje objekata s izrazom DEFINER, kao i privilegija ALLOW_NONEXISTENT_DEFINER za zaštitu objekata bez vlasnika.
- Zastarjeli su: varijable old i new, maske «%» i «_» u operacijama pristupanja bazi podataka, opcija «—character-set-client-handshake», varijabla binlog_transaction_dependency_tracking i privilegija SET_USER_ID.
- U sklopu usklađivanja politički nekorektne terminologije povezanih s replikacijom, zastarjeli su izrazi «RESET MASTER», «SHOW MASTER STATUS», «SHOW MASTER LOGS» i «PURGE MASTER LOGS», umjesto kojih treba koristiti izraze «RESET BINARY LOGS AND GTIDS», «SHOW BINARY LOG STATUS», «SHOW BINARY LOGS» i «PURGE BINARY LOGS».
- Uklonjene su opcije koje su ranije označene kao zastarjele: funkcija WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), varijabla expire_logs_days, opcije «—abort-slave-event-count» i «—disconnect-slave-event-count».
- Otklonjene su 26 ranjivosti. Dve ranjivosti povezane sa korištenjem paketa Curl i biblioteke OpenSSL mogu biti iskorištene na daljinu.
Izvor: opennet.ru
