Устаревшая функциональность в версии 8.0¶
-
Набор символов
utf8mb3
устарел. Вместо этого используйтеutf8mb4
. Набор символовutf8mb3
действителен в MySQL 8.0, однако рекомендуется использоватьutf8mb4
для улучшенной поддержки Unicode. Прочитайте Migrating to utf8mb4: Things to Consider для получения дополнительной информации. -
caching_sha2_password
— это плагин аутентификации по умолчанию в MySQL 8.0, который предоставляет расширенный набор возможностей плагина аутентификацииsha256_password
.sha256_password
считается устаревшим. Новый плагин аутентификации по умолчаниюcaching_sha2_password
предлагает более безопасное хеширование паролей и улучшенную аутентификацию клиентских подключений,mysql_native_password
который использовался по умолчанию раньше. Существующие пользователи, созданные с указанием плагинаmysql_native_password
, по-прежнему могут использоваться и входить в БД. Новые пользователи будут созданы с помощью плагинаcaching_sha2_password
, если вы не измените плагин аутентификации по умолчанию. -
Утилита
mysql_upgrade
устарела, поскольку её функции по обновлению системных таблиц в системной схемеmysql
и объектов в других схемах были перенесены в сервер MySQL. Начиная с MySQL 8.0.16, сервер выполняет все задачи, которые ранее выполнялисьmysql_upgrade
.Процесс обновления автоматически начинается с запуска нового бинарного файла MySQL со старым каталогом данных.
Текстовый файл
mysql_upgrade_info
, который создается в каталоге данных, используется для хранения номера версии MySQL. Также в каталоге данных создаются новые файлы InnoDB.После установки новой версии MySQL сервер теперь автоматически выполняет все необходимые задачи обновления при следующем запуске и не требует вызова
mysql_upgrade
администратором. Кроме того, сервер обновляет содержимое справочных таблиц (чего не делалmysql_upgrade
).Новая опция
--upgrade
обеспечивает контроль над тем, как сервер выполняет автоматические операции по словарю данных и обновлению сервера при запуске. -
Плагин
validate_password
был переработан с использованием инфраструктуры серверных компонента. Старая реализация плагинаvalidate_password
все еще доступна, но устарела. -
Указание
ENGINE
для командALTER TABLESPACE
иDROP TABLESPACE
. -
SQL-режим
PAD_CHAR_TO_FULL_LENGTH
(см. раздел “Server SQL Modes” в официальной документации) -
Поддержка
AUTO_INCREMENT
устарела для столбцов типаFLOAT
иDOUBLE
(и любых их синонимов). Рассмотрите возможность удаления атрибутаAUTO_INCREMENT
из таких столбцов или преобразуйте их в целочисленный тип. -
Атрибут
UNSIGNED
устарел для столбцов типаFLOAT
,DOUBLE
иDECIMAL
(и любых синонимов). Вместо этого рассмотрите возможность использования простого ограничения CHECK для таких столбцов. -
Синтаксис
FLOAT(M,D)
иDOUBLE(M,D)
для указания количества цифр для столбцов типаFLOAT
иDOUBLE
(и любых синонимов) является нестандартным расширением MySQL. Этот синтаксис устарел. -
Нестандартные операторы в стиле языка C
&&
,||
и!
, являющиеся синонимами стандартных SQL-операторовAND
,OR
иNOT
соответственно, считаются устаревшими. Приложения, использующие нестандартные операторы, следует исправить для использования стандартных. -
Системная переменная
relay_log_info_file
и опция-–master-info-file
устарели. Ранее они использовались для указания имени файла метаданных для журнала ретрансляции и ведущего сервера, когда были заданы значенияrelay_log_info_repository=FILE
иmaster_info_repository=FILE
, но эти параметры устарели. Использование файлов метаданных для журнала ретрансляции и ведущего сервера было заменено защищенными от сбоев таблицами, которые используются по умолчанию в MySQL 8.0. -
Использование переменной среды
MYSQL_PWD
для указания пароля MySQL устарело.
Примечание
С полным и актуальным списком изменений в MySQL 8.0 можно ознакомиться в соответствующем разделе официальной документации.