MySQL 8.3.0 является третьим выпуском, сформированным в рамках новой модели формирования релизов, предусматривающей наличие двух типов веток MySQL — «Innovation» и «LTS». Ветки Innovation, к которым отнесены MySQL 8.1, 8.2 и 8.3, рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности. Данные ветки публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 8.3 прекращена поддержка ветки 8.2). LTS-ветки рекомендованы для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. LTS ветки будут выпускаться раз в два года и поддерживаться в штатном режиме 5 лет, в дополнение к которым можно будет получить ещё 3 года расширенной поддержки. Весной 2024 года ожидается LTS-релиз MySQL 8.4, после которого будет сформирована новая Innovation-ветка 9.0.
Основные изменения в MySQL 8.3:
- Устранено 25 уязвимостей, из которых одна (CVE-2023-5363, затрагивает OpenSSL) может быть эксплуатирована удалённо. Наиболее серьёзной проблеме, которая связана с использованием протокола Kerberos, присвоен уровень опасности 8.8. Менее опасные уязвимости с уровнем опасности 6.5 затрагивают оптимизатор, UDF, DDL, DML, репликацию, систему привилегий и средства для шифрования.
- На платформе Linux добавлена поддержка компоновщика mold. Для включения предусмотрена опция «-DWITH_LD=mold|lld».
- Требования к поддерживаемому компилятором стандарту C++ подняты с C++17 до C++20.
- Прекращена поддержка сборки с внешними библиотеками Boost C++ — при компиляции MySQL теперь используются только встроенные библиотеки Boost. В CMake удалены сборочные опции WITH_BOOST, DOWNLOAD_BOOST и DOWNLOAD_BOOST_TIMEOUT.
- Прекращена поддержка сборки в Visual Studio 2022. Минимально поддерживаемая версия инструментария Clang повышена с Clang 10 до Clang 12.
- В MySQL Enterprise Edition добавлена поддержка сбора телеметрии с метриками о работе сервера в формате OpenTelemetry и передачи данных на поддерживающий данный формат сетевой обработчик.
- Расширен формат идентификаторов GTID (global transaction identifier), применяемый при репликации для идентификации групп транзакций. Новый формат GTID — «UUID:‹TAG›:NUMBER» (вместо «UUID:NUMBER»), где TAG является произвольной строкой, позволяющей назначать уникальные имена определённой группе транзакций для упрощения обработки и разбора.
- Добавлены две новые переменные «Deprecated_use_i_s_processlist_count» и «Deprecated_use_i_s_processlist_last_timestamp» для отслеживания использования устаревшей таблицы INFORMATION_SCHEMA.PROCESSLIST.
- Установка переменной окружения AUTHENTICATION_PAM_LOG больше не приводит к отображению паролей в диагностических сообщениях (для упоминания пароля требуется присвоение значения PAM_LOG_WITH_SECRET_INFO).
- Добавлена таблица tp_connections с информацией о каждом соединении в пуле потоков (thread pool).
- Добавлена системная переменная «explain_json_format_version» для выбора версии формата JSON, используемого в выражениях «EXPLAIN FORMAT=JSON».
- В хранилище InnoDB удалены параметры «—innodb» и «—skip-innodb», который были объявлены устаревшими ещё в выпуске MySQL 5.6. Удалён плагин memcached к InnoDB, объявленный устаревшим в MySQL 8.0.22.
- Удалены некоторые настройки и опции командной строки, связанные репликацией, которые были объявлены устаревшими в прошлых выпусках: «—slave-rows-search-algorithms», «—relay-log-info-file», «—relay-log-info-repository», «—master-info-file», «—master-info-repository», «log_bin_use_v1_events», «transaction_write_set_extraction», «group_replication_ip_whitelist», «group_replication_primary_member». Прекращена возможность использования опции IGNORE_SERVER_IDS с режимом репликации GTID (gtid_mode=ON).
- Прекращена поддержка функций С API: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown(), mysql_ssl_set().
- Прекращена поддержка выражения «FLUSH HOSTS», объявленного устаревшим в MySQL 8.0.23.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60453