Компанія 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 RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSW
- Проведено оптимізацію хеш таблиць, що дозволило прискорити виконання операцій 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. ).
- У клієнтську Сі-бібліотеку додано можливість використання іменованих атрибутів у параметризованих запитах (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