Доступна СУБД MySQL 8.1.0

Спустя 5 лет после публикации ветки 8.0 компания Oracle сформировала новую ветку СУБД MySQL 8.1 и объявила об изменении модели формирования релизов. Сборки MySQL Community Server 8.1.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows.

Новая модель формирования релизов предусматривает наличие двух видов веток MySQL – “Innovation” и “LTS”. Обе ветки будут включать новые возможности и будут пригодны для рабочих внедрений. Ветки Innovation, к которым отнесён MySQL 8.1, рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности. Данные ветки будут публиковаться каждые 3 месяца и
поддерживаться только до публикации следующего значительного релиза (например, поддержка ветки 8.1 будет прекращена после появления ветки 8.2, которая ожидается в конце октября). LTS-ветки рекомендованы для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. LTS ветки будут выпускаться раз в два года и поддерживаться в штатном режиме 5 лет, в дополнение к которым можно будет получить ещё 3 года расширенной поддержки.


После публикации MySQL 8.1.0 ветка 8.0 переведена в режим сопровождения, допускающий только исправление ошибок. Сопровождение ветки 8.0 продлится до апреля 2026 года. Примерно через год будет выпущен новый LTS-релиз MySQL 8.4, что оставит пользователям примерно два года на переход с MySQL 8.0 на новую LTS-ветку. После формирования LTS-выпуска для следующего значительного релиза будет увеличена первая цифра в номере версии, т.е. после 8.4 LTS будет сформирована ветка 9.0 Innovation, затем через два года выйдет новый LTS-релиз 9.7, после которого настанет черёд ветки 10.0 Innovation. Обновления БД по месту (без перезаливки дампа) будет поддерживаться между LTS-релизами и между ветками Innovation до следующего LTS-релиза (т.е. с LTS 8.4 можно будет перейти на LTS 9.7 без перезаливки БД и с Innovation 9.1 до всех веток 9.x, включая LTS 9.7).


Основные изменения в MySQL 8.1:

  • Добавлена конструкция “EXPLAIN FORMAT=JSON INTO”, позволяющая сохранить отчёт о времени выполнения запроса в формате JSON в отдельной переменной, к которой применимы функции для разбора JSON, например: EXPLAIN FORMAT=JSON INTO @myex SELECT name FROM a WHERE id = SELECT JSON_EXTRACT(@myex, “$.query_block.table.key”);
  • По умолчанию отключено вырезание комментариев, отправляемых на сервер клиентом mysql. Для возвращения старого поведения следует запускать утилиту mysql с опцией “–skip-comments”.
  • Значение опции SOURCE_RETRY_COUNT (время ожидания перед перед повторной попыткой установки соединения), указываемой в выражении “CHANGE REPLICATION SOURCE TO”, изменено по умолчанию на 10 секунд.
  • Для упрощения отладки проблем в лог добавлены дополнительные сообщения о запуске и завершении работы, а также закрытии соединений.
  • Добавлено выражение “SHOW PARSE_TREE” для показа дерева разбора запроса SELECT в JSON-представлении.
  • Добавлена системная переменная tls-certificates-enforced-validation для включения обязательной проверки корректности TLS-сертификата при запуске сервера или выполнении выражения “ALTER INSTANCE RELOAD TLS”. Если проверка не прошла сервер не будет запущен.
  • Добавлены переменные, отражающие состояние репликации.
  • Добавлены переменные authentication_ldap_[simple|sasl]_[connect|response]_timeout для управления значениями таймаутов при подключении к LDAP-серверу для аутентификации.
  • Прекращена поддержка установки указываемых при запуске опций (–my-option=NULL) и связанных с ними системных переменных в значение NULL.
  • Запрещено использование символа “$” в качестве первого символа идентификаторов, без экранирования.

Release. Ссылка here.