Компания Oracle създаде нов клон на СУБД MySQL 8.2 и публикува коригиращи актуализации MySQL 8.0.35 и 5.7.44. Сборките на MySQL Community Server 8.2.0 са подготвени за всички основни дистрибуции на Linux, FreeBSD, macOS и Windows.
MySQL 8.2.0 е второто издание, създадено в рамките на новия модел на релизите, предвиждащ наличие на два типа клони на MySQL — «Innovation» и «LTS». Клоните Innovation, сред които са MySQL 8.1 и 8.2, са предназначени за тези, които искат да получават нова функционалност по-рано. Тези клони се публикуват на всеки 3 месеца и се поддържат само до публикуването на следващото значително издание (например, след появата на клон 8.2, поддръжката на клон 8.1 спира). LTS-клоните са препоръчителни за внедрявания, които имат нужда от предсказуемост и дългосрочно запазване на неизменяемото поведение. LTS клоните ще бъдат издавани на всеки две години и ще се поддържат в стандартен режим в течение на 5 години, с допълнителни 3 години разширена поддръжка. През пролетта на 2024 година се очаква LTS-релиз на MySQL 8.4, след който ще бъде създаден новият клон Innovation 9.0.
Основни промени в MySQL 8.2:
- Добавена е поддръжка на механизма за удостоверяване на база Webauthn (FIDO2), позволяваща прилагането на многофакторна автентикация и потвърждение на връзката с сървъра MySQL без пароли, използвайки хардуерни токени с поддръжка на FIDO2 или биометрична автентикация. Плъгинът с поддръжка на Webauthn в момента е достъпен само за MySQL Enterprise.
- Сървърният плъгин mysql_native_password, осигуряващ удостоверяване с пароли, е преместен в категорията на незадължителните и може да бъде деактивиран. Вместо mysql_native_password се препоръчва преминаване към плъгина caching_sha2_password, който използва SHA2 вместо SHA1 за хеширане. За смяна на потребители към плъгина caching_sha2_password с подмяна на паролата с произволна може да се използва командата: ALTER USER ‘username’@’localhost’ IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
- Оптимизирани са хеш таблиците, което позволява ускоряване на изпълнението на операциите EXCEPT и INTERSECT.
- Разширени са дебъгинг възможностите. В операциите SELECT, INSERT, REPLACE, UPDATE и DELETE е добавена поддръжка на израза „EXPLAIN FORMAT=JSON“ за генериране на диагностичен изход в JSON формат (например, „EXPLAIN FORMAT=JSON INTO @var select_stmt;“).
- Добавено изразът «EXPLAIN FOR SCHEMA» за извеждане на диагностика, свързана само с определена схема данни.
- В утилитата mysqldump е добавена опция «—output-as-version» за създаване на дампове, съвместими с определена стара версия на MySQL (например, може да се посочи BEFORE_8_2_0 или BEFORE_8_0_23 за връщане на неполитически коректната терминология master/slave, обявена за остаряла в версиите 8.2.0 и 8.0.23).
- В клиентската C-библиотека е добавена възможността за използване на наименувани атрибути в параметризирани запитвания (prepared statement), реализирани с новата функция mysql_stmt_bind_named_param(), която замества функцията mysql_stmt_bind_param().
- Улеснено разпределението на SQL-трафика в клъстера от MySQL-сървъри. Предоставени са възможности за организиране на прозрачни за приложения свързвания с вторични или основни сървъри.
- Добавена е нова привилегия SET_ANY_DEFINER, предоставяща правото за създаване на обекти с израза DEFINER, както и привилегия ALLOW_NONEXISTENT_DEFINER за защита на обекти с отсъстващ собственик.
- Обявени за остарели: променливите old и new, маските «%» и «_» в операции за предоставяне на достъп до БД, опцията «—character-set-client-handshake», променливата binlog_transaction_dependency_tracking и привилегията SET_USER_ID.
- В рамките на корекцията на неполитически коректната терминология, свързана с репликацията, обявени за остарели са изразите «RESET MASTER», «SHOW MASTER STATUS», «SHOW MASTER LOGS» и «PURGE MASTER LOGS», вместо които следва да се използват изразите «RESET BINARY LOGS AND GTIDS», «SHOW BINARY LOG STATUS», «SHOW BINARY LOGS» и «PURGE BINARY LOGS».
- Премахнати са възможности, преди това обявени за остарели: функцията WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), променливата expire_logs_days, опциите «—abort-slave-event-count» и «—disconnect-slave-event-count».
- Отстранени са 26 уязвимости. Две уязвимости, свързани с използването на пакета Curl и библиотеката OpenSSL, могат да бъдат експлоатирани отдалеч.
Източник: opennet.ru
