Новые возможности MySQL 5.7 - презентация слайдов
Эта презентация описывает новую функцию MySQL 5.7 с описанием, синтаксисом и примерами.
Улучшения безопасности
Эти улучшения безопасности были добавлены:
- Сервер теперь требует, чтобы строки учетных записей в таблице mysql.user имели непустое значение столбца подключаемого модуля и отключает учетные записи с пустым значением. Для получения инструкций по обновлению сервера администраторам рекомендуется также преобразовывать учетные записи, использующие
Плагин аутентификации mysql_old_password для использования
Вместо этого mysql_native_password, потому что поддержка
mysql_old_password был удален. Для обновления аккаунта
инструкции, см. раздел 6.3.9.3. Msgstr "Migrating Away Pre-4.1 Хеширование паролей и плагин для старого пароля mysql". - MySQL теперь позволяет администраторам баз данных устанавливать политику автоматического истечения срока действия пароля: любой пользователь, который подключается к серверу, используя учетную запись, срок действия пароля которой превышает допустимый срок действия, должен изменить пароль. Для дополнительной информации.
- Администраторы могут блокировать и разблокировать учетные записи для лучшего контроля над тем, кто может войти.
- Чтобы упростить поддержку безопасных соединений, серверы MySQL, скомпилированные с использованием OpenSSL, могут автоматически генерировать отсутствующие сертификаты SSL и RSA и файлы ключей при запуске.
Все серверы (независимо от того, скомпилированы ли они с использованием OpenSSL или yaSSL, если явно не настроен для SSL, при запуске автоматически пытаются включить SSL, если они находят необходимые файлы SSL в каталоге данных.
Кроме того, дистрибутивы MySQL включают утилиту mysql_ssl_rsa_setup, которую можно вызывать вручную для создания файлов ключей и сертификатов SSL и RSA.
- Развертывания MySQL, установленные с использованием mysqld --initialize, по умолчанию безопасны. Следующие изменения были реализованы в качестве характеристик развертывания по умолчанию:
- В процессе установки создается только одна учетная запись root 'root' @ 'localhost', автоматически генерируется случайный пароль для этой учетной записи и помечается, что срок действия пароля истек. Администратор MySQL должен подключиться как root с использованием случайного пароля и назначить новый пароль. (Сервер записывает случайный пароль в журнал ошибок.)
- Установка не создает учетные записи анонимных пользователей.
- Установка не создает тестовую базу данных.
Изменения в режиме SQL
Режим строгого SQL для механизмов хранения транзакций (STRICT_TRANS_TABLES) теперь включен по умолчанию.
Реализация режима SQL ONLY_FULL_GROUP_BY была сделана более сложной, чтобы больше не отклонять детерминированные запросы, которые ранее были отклонены. Как следствие, этот режим теперь включен по умолчанию, чтобы запретить только недетерминированные запросы, содержащие выражения, которые не гарантируются для однозначного определения в группе.
Режимы SQL ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE и NO_ZERO_IN_DATE устарели, но включены по умолчанию. Долгосрочный план состоит в том, чтобы включить их в строгий режим SQL и удалить их как явные режимы в будущем выпуске MySQL.
Изменения в режиме SQL по умолчанию приводят к значению системной переменной sql_mode по умолчанию, в котором включены следующие режимы: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTOION_ NO_UBE
Online ALTER TABLE
ALTER TABLE теперь поддерживает предложение RENAME INDEX, которое переименовывает индекс. Изменение производится на месте без операции копирования таблицы. Это работает для всех систем хранения.
плагины полнотекстового парсера ngram и MeCab
Начиная с MySQL 5.7.6, MySQL предоставляет встроенный плагин полнотекстового парсера ngram, который поддерживает китайский, японский и корейский языки (CJK), и устанавливаемый плагин полнотекстового парсера MeCab для японского языка.
Улучшения InnoDB
Эти улучшения InnoDB были добавлены:
Размер VARCHAR можно увеличить, используя ALTER TABLE на месте, как в этом
Пример :
ALTER TABLE t1 ALGORITHM = INPLACE, ИЗМЕНИТЬ КОЛОННУ c1 C1 VARCHAR (255);
Это верно до тех пор, пока количество байтов длины, требуемых для столбца VARCHAR, остается неизменным. Для значений VARCHAR от 0 до 255 требуется один байт длины для кодирования значения. Для значений VARCHAR 256 байтов или более требуются два байта длины. В результате на месте ALTER TABLE поддерживается только увеличение размера VARCHAR с 0 до 255 байтов или увеличение размера VARCHAR со значения, равного или превышающего 256 байтов.
На месте ALTER TABLE не поддерживает увеличение размера VARCHAR с менее чем 256 байтов до значения, равного или превышающего 256 байтов. В этом случае число требуемых байтов длины изменится с 1 на 2, что поддерживается только копией таблицы (ALGORITHM = COPY). Например, попытка изменить размер столбца VARCHAR с 255 на 256 с помощью ALTER TABLE на месте вернет ошибку:
ALTER TABLE t1 ALGORITHM = INPLACE, ИЗМЕНИТЬ КОЛОННУ c1 C1 VARCHAR (256); ОШИБКА 0A000: ALGORITHM = INPLACE не поддерживается. Причина: невозможно изменить тип столбца INPLACE. Попробуйте АЛГОРИТМ = КОПИЯ.
Уменьшение размера VARCHAR с использованием ALTER TABLE на месте не поддерживается. Для уменьшения размера VARCHAR требуется копия таблицы (ALGORITHM = COPY).
Производительность DDL для временных таблиц InnoDB повышается за счет оптимизации операторов CREATE TABLE, DROP TABLE, TRUNCATE TABLE и ALTER TABLE.
Метаданные временных таблиц InnoDB больше не хранятся в системных таблицах InnoDB. Вместо этого новая таблица INNODB_TEMP_TABLE_INFO предоставляет пользователям снимок активных временных таблиц. Таблица содержит метаданные и отчеты по всем созданным пользователем и системным временным таблицам, которые активны в данном экземпляре InnoDB. Таблица создается, когда к ней запускается первая инструкция SELECT.
InnoDB теперь поддерживает MySQL-поддерживаемые типы пространственных данных. До этого выпуска InnoDB сохранял пространственные данные в виде двоичных BLOB-данных. BLOB остается основным типом данных, но пространственные типы данных теперь отображаются на новый внутренний тип данных InnoDB, DATA_GEOMETRY.
Теперь для всех несжатых временных таблиц InnoDB существует отдельное табличное пространство. Новое табличное пространство всегда создается заново при запуске сервера и по умолчанию находится в DATADIR. Недавно добавленная опция файла конфигурации, innodb_temp_data_file_path, позволяет указать путь к временному файлу данных, определяемый пользователем.
В MySQL 5.7.2 функциональность innochecksum расширена за счет нескольких новых опций и расширенных возможностей.
Новый тип журнала отмены повторов без повторов для обычных и сжатых временных таблиц и связанных объектов теперь находится во временном табличном пространстве.
В MySQL 5.7.2 улучшены операции дампа и загрузки пула буферов InnoDB. Новая системная переменная, innodb_buffer_pool_dump_pct, позволяет вам указать процент последних использованных страниц в каждом пуле буферов для чтения и выгрузки. Когда есть другие операции ввода-вывода, выполняемые фоновыми задачами InnoDB, InnoDB пытается ограничить число операций загрузки пула буферов в секунду, используя параметр innodb_io_capacity.
В MySQL 5.7.3 добавлена поддержка InnoDB для полнотекстовых плагинов парсера. Для получения информации о полнотекстовых плагинах парсера.
Начиная с MySQL 5.7.4, InnoDB поддерживает несколько потоков чистых страниц для очистки грязных страниц из экземпляров буферного пула. Новая системная переменная, innodb_page_cleaners, используется для указания количества потоков очистителя страниц. Значение по умолчанию 1 поддерживает конфигурацию, предшествующую MySQL 5.7.4, в которой имеется отдельный поток очистки страниц. Это усовершенствование основано на работе, выполненной в MySQL 5.6, которая представила единый поток очистки страниц, чтобы разгрузить работу по очистке пула буферов из главного потока InnoDB.
Начиная с MySQL 5.7.4, MySQL поддерживает перестройку обычных и секционированных таблиц InnoDB с использованием оперативного DDL (ALGORITHM = INPLACE) для следующих операций:
❍ ОПТИМИЗАЦИЯ СТОЛ
❍ ALTER TABLE ... СИЛА
TER ALTER TABLE ... ENGINE = INNODB (при запуске на таблице InnoDB)
Поддержка DDL в режиме онлайн сокращает время перестроения таблиц и позволяет одновременно использовать DML, что помогает сократить время простоя пользовательских приложений.
Файловая система энергонезависимой памяти Fusion-io (NVM) в Linux обеспечивает возможность атомарной записи, что делает резервный буфер InnoDB с двойной записью избыточным. В MySQL 5.7.4 буфер двойной записи InnoDB автоматически отключается для системных файлов табличного пространства (файлов ibdata), расположенных на устройствах Fusion-io, которые поддерживают атомарную запись.
Начиная с MySQL 5.7.4, InnoDB поддерживает функцию Transportable Tablespace для секционированных таблиц InnoDB и отдельных секций таблиц InnoDB. Это усовершенствование облегчает процедуры резервного копирования для многораздельных таблиц и позволяет копировать многораздельные таблицы и отдельные разделы таблиц между экземплярами MySQL.
Начиная с MySQL 5.7.5, параметр innodb_buffer_pool_size является динамическим, что позволяет изменять размер пула буферов без перезапуска сервера. Операция изменения размера, которая включает перемещение страниц в новое место в памяти, выполняется порциями. Размер чанка настраивается с помощью новой опции конфигурации innodb_buffer_pool_chunk_size. Вы можете отслеживать ход изменения размера, используя новую переменную состояния Innodb_buffer_pool_resize_status.
Поддержка многопоточного очистителя страниц (nnodb_pagie_cleaners) расширена до фаз выключения и восстановления в MySQL 5.7.5.
Начиная с MySQL 5.7.5, InnoDB поддерживает индексацию пространственных типов данных с использованием индексов SPATIAL, включая использование ALTER TABLE ... ALGORITHM = INPLACE для онлайн-операций (ADD SPATIAL INDEX).
Начиная с MySQL 5.7.5, InnoDB выполняет массовую загрузку при создании или перестройке индексов. Этот метод создания индекса известен как «сборка отсортированного индекса». Это усовершенствование, которое повышает эффективность создания индекса, также применяется к полнотекстовым индексам. Новый глобальный параметр конфигурации iiinnodb_fill_factor определяет процент пространства на каждой странице, которое заполняется данными во время сортировки индекса, при этом оставшееся пространство зарезервировано для будущего роста индекса.
Начиная с MySQL 5.7.5, новый тип записи журнала (MLOG_FILE_NAME) используется для идентификации табличных пространств, которые были изменены со времени последней контрольной точки. Это усовершенствование упрощает обнаружение табличных пространств во время восстановления после сбоя и исключает сканирование файловой системы перед повторным применением журнала. Для получения дополнительной информации о преимуществах этого улучшения.
Это усовершенствование изменяет формат журнала повторов, требуя, чтобы MySQL был аккуратно завершен перед обновлением или понижением с MySQL 5.7.5.
Начиная с MySQL 5.7.5, вы можете обрезать журналы отмены, которые находятся в табличных пространствах отмены. Эта функция включена с помощью параметра конфигурации innodb_undo_log_truncate.
Начиная с MySQL 5.7.6, InnoDB поддерживает собственное разбиение. Ранее InnoDB полагался на обработчик ha_partition, который создает объект обработчика для каждого раздела. При собственном разбиении многораздельная таблица InnoDB использует один объект-обработчик с поддержкой разбиения. Это улучшение уменьшает объем памяти, необходимый для секционированных таблиц InnoDB.
Начиная с MySQL 5.7.9, mysql_upgrade ищет и пытается обновить многораздельные таблицы InnoDB, созданные с помощью обработчика ha_partition. Также в MySQL 5.7.9 и более поздних версиях вы можете обновить такие таблицы по имени в клиенте mysql, используя команду ALTER TABLE ... UPGRADE PARTITIONING.
Начиная с MySQL 5.7.6, InnoDB поддерживает создание общих табличных пространств с использованием синтаксиса CREATE TABLESPACE.
CREATE TABLESPACE `tablespace_name` ADD DATAFILE 'file_name.ibd' [FILE_BLOCK_SIZE = n]
Общие табличные пространства могут создаваться вне каталога данных MySQL, могут содержать несколько таблиц и поддерживают таблицы всех форматов строк.
Таблицы добавляются в общее табличное пространство с использованием CREATE TABLE tbl_name ... TABLESPACE [=] tablespace_name или ALTER TABLE tbl_name TABLESPACE [=] tablespe_namace синтаксис.
В MySQL 5.7.9 DYNAMIC заменяет COMPACT в качестве неявного формата строк по умолчанию для таблиц InnoDB. Новая опция конфигурации, innodb_default_row_format, задает формат строки InnoDB по умолчанию.
Поддержка JSON
Начиная с MySQL 5.7.8, MySQL поддерживает собственный тип JSON. Значения JSON не хранятся в виде строк, вместо этого используется внутренний двоичный формат, который обеспечивает быстрый доступ для чтения к элементам документа. Документы JSON, хранящиеся в столбцах JSON, автоматически проверяются всякий раз, когда они вставляются или обновляются, а недействительный документ вызывает ошибку. Документы JSON нормализуются при создании и могут сравниваться с использованием большинства операторов сравнения, таких как =, <, <=,>,> =, <>,! = И <=>; для получения информации о поддерживаемых операторах, а также о приоритетах и других правилах, которым MySQL следует при сравнении значений JSON.
В MySQL 5.7.8 также представлен ряд функций для работы со значениями JSON. Эти функции включают перечисленные здесь:
Функции, которые создают значения JSON: JSON_ARRAY (), JSON_MERGE () и JSON_OBJECT ().
Функции, которые ищут значения JSON: JSON_CONTAINS (), JSON_CONTAINS_PATH (), JSON_EXTRACT (), JSON_KEYS () и JSON_SEARCH ().
Функции, которые изменяют значения JSON: JSON_APPEND (), JSON_ARRAY_APPEND (), JSON_ARRAY_INSERT (), JSON_INSERT (), JSON_QUOTE (), JSON_REMOVE (), JSON_REPLACE (), JSON_SET () и JSON_UNQUE ()
Функции, предоставляющие информацию о значениях JSON: JSON_DEPTH (), JSON_LENGTH (), JSON_TYPE () и JSON_VALID ().
В MySQL 5.7.9 и более поздних версиях вы можете использовать column-> path как сокращение для JSON_EXTRACT (column, path). Это работает как псевдоним для столбца, где идентификатор столбца может встречаться в операторе SQL, включая предложения WHERE, ORDER BY и GROUP BY. Это включает в себя SELECT, UPDATE, DELETE, CREATE TABLE и другие операторы SQL. Левая часть должна быть идентификатором столбца JSON (а не псевдонимом). Правая часть - это выражение пути JSON в кавычках, которое сравнивается с документом JSON, возвращаемым в качестве значения столбца.
Системные и статусные переменные
Информация о переменных системы и состояния теперь доступна в таблицах схемы производительности, предпочтительнее использовать таблицы INFORMATION_SCHEMA для получения этих переменных. Это также влияет на работу операторов SHOW VARIABLES и SHOW STATUS. Значение системной переменной show_compatibility_56 влияет на выходные данные и привилегии, необходимые для операторов и таблиц системных переменных и переменных состояния.
Заметка
По умолчанию для shw_compatibility_56 установлено значение OFF. Приложения, требующие поведения 5.6, должны установить эту переменную в положение ON до тех пор, пока они не будут перенесены в новое поведение для системных переменных и переменных состояния.
схема системы
В дистрибутивы MySQL теперь входит схема sys, представляющая собой набор объектов, которые помогают администраторам баз данных и разработчикам интерпретировать данные, собранные с помощью схемы производительности. Объекты схемы sys могут использоваться для типичных случаев настройки и диагностики.
Обработка условий
MySQL теперь поддерживает сложенные области диагностики. При перемещении стека области диагностики первая (текущая) область диагностики становится второй (сложенной) областью диагностики, и в качестве ее копии создается новая область текущей диагностики. В обработчике условий выполненные операторы изменяют новую текущую область диагностики, но GET STACKED DIAGNOSTICS можно использовать для проверки области диагностики с накоплением, чтобы получить информацию об условии, которое вызвало активацию обработчика, независимо от текущих условий внутри самого обработчика. (Раньше была одна область диагностики. Чтобы проверить условия активации обработчика внутри обработчика, необходимо было проверить эту область диагностики перед выполнением любых операторов, которые могли бы ее изменить.)
оптимизатор
Эти улучшения оптимизатора были добавлены:
EXPLAIN может использоваться для получения плана выполнения объяснимого оператора, выполняющегося в именованном соединении:
ОБЪЯСНИТЬ [опции] ДЛЯ СОЕДИНЕНИЯ connection_id;
Можно предоставить оптимизатору подсказки в отдельных операторах SQL, что обеспечивает более точное управление планами выполнения операторов, чем это может быть достигнуто с помощью системной переменной optimizer_switch. Подсказки также разрешены в операторах, используемых с EXPLAIN, что позволяет вам увидеть, как подсказки влияют на планы выполнения.
Триггеры
Ранее таблица могла иметь не более одного триггера для каждой комбинации события триггера (INSERT, UPDATE, DELETE) и времени действия (BEFORE, AFTER). Это ограничение было снято, и допускается несколько триггеров.
логирование
Эти улучшения были добавлены:
Ранее, в Unix и Unix-подобных системах, поддержка MySQL для отправки журнала ошибок сервера в syslog была реализована путем вывода вывода ошибок сервера mysqld_safe и передачи его в syslog. Сервер теперь включает встроенную поддержку системного журнала, которая была расширена, чтобы включить Windows. Для получения дополнительной информации об отправке вывода ошибок сервера в системный журнал.
У клиента mysql теперь есть опция --syslog, которая заставляет интерактивные операторы отправляться в системный системный журнал. Ведение журнала подавляется для операторов, которые соответствуют стандартному списку шаблонов «игнорировать» («* IDENTIFIED *: * PASSWORD *»), а также для операторов, которые соответствуют любым шаблонам, указанным с помощью параметра --histignore.
Сгенерированные столбцы
MySQL теперь поддерживает спецификацию сгенерированных столбцов в операторах CREATE TABLE и ALTER TABLE. Значения сгенерированного столбца вычисляются из выражения, указанного во время создания столбца. Сгенерированные столбцы могут быть виртуальными (вычисляться «на лету», когда строки читаются) или сохраняться (вычисляться, когда строки вставляются или обновляются).
MySQL клиент
Ранее Control + C в mysql прерывал текущий оператор, если таковой был, или выходил из mysql, если нет. Теперь Control + C прерывает текущий оператор, если таковой был, или отменяет любую частичную строку ввода в противном случае, но не завершает работу.
Перезапись имени базы данных с помощью mysqlbinlog
Переименование баз данных с помощью mysqlbinlog при чтении из двоичных журналов, записанных в формате на основе строк, теперь поддерживается с использованием опции --rewrite-db, добавленной в MySQL 5.7.1.
Эта опция использует формат --rewrite-db = 'dboldname-> dbnewname'. Вы можете реализовать несколько правил перезаписи, указав опцию несколько раз.
HANDLER с секционированными таблицами
Теперь оператор HANDLER может использоваться с таблицами, разделенными пользователем. Такие таблицы могут использовать любой из доступных типов разбиения.
Поддержка условного индекса для разделенных таблиц
В MySQL 5.7.3 и более поздних версиях запросы к многораздельным таблицам, использующие механизм хранения InnoDB или MyISAM, могут использовать оптимизацию сжатия условия индекса, которая была представлена в MySQL 5.6.
БЕЗ ВАЛИДАЦИОННОЙ ПОДДЕРЖКИ ALTER TABLE ... EXCHANGE PARTITION
Начиная с MySQL 5.7.5, синтаксис ALTER TABLE ... EXCHANGE PARTITION включает необязательное предложение {WITH | WITHOUT} VALIDATION. Если указан параметр БЕЗ ВАЛИДАЦИИ, команда ALTER TABLE ... EXCHANGE PARTITION не выполняет построчную проверку при обмене заполненной таблицы с разделом, что позволяет администраторам базы данных взять на себя ответственность за обеспечение того, что строки находятся в границах определения раздела. WITH VALIDATION - это поведение по умолчанию, которое не нужно указывать явно.
Улучшения в мастер-дампе
Главный поток дампа был реорганизован для уменьшения конкуренции за блокировку и повышения пропускной способности. До MySQL 5.7.2 поток дампа блокировал двоичный журнал каждый раз, когда читал событие; в MySQL 5.7.2 и позже эта блокировка удерживается только при чтении позиции в конце последнего успешно записанного события. Это означает и то, что несколько потоков дампа теперь могут читать одновременно из двоичного файла журнала, и что потоки дампа теперь могут читать, пока клиенты записывают в двоичный журнал.
Улучшения глобализации
MySQL 5.7.4 включает набор символов gb18030, который поддерживает набор символов Китайского национального стандарта GB18030.
Изменение мастера репликации без STOP SLAVE
В MySQL 5.7.4 и более поздних версиях строгое требование выполнить STOP SLAVE перед выполнением любого оператора CHANGE MASTER TO удалено. Вместо того, чтобы зависеть от того, остановлено ли подчиненное устройство, поведение CHANGE MASTER TO теперь зависит от состояний подчиненного потока SQL и подчиненных потоков ввода-вывода; какой из этих потоков остановлен или запущен, теперь определяет параметры, которые можно или нельзя использовать с оператором CHANGE MASTER TO в данный момент времени. Правила для этого определения перечислены здесь:
Если поток SQL остановлен, вы можете выполнить CHANGE MASTER TO, используя любую комбинацию параметров RELAY_LOG_FILE, RELAY_LOG_POS и MASTER_DELAY, даже если запущен подчиненный поток ввода-вывода. Никакие другие параметры не могут использоваться с этим оператором, когда поток ввода-вывода работает.
Если поток ввода-вывода остановлен, вы можете выполнить CHANGE MASTER TO, используя любой из параметров для этого оператора (в любой допустимой комбинации), кроме RELAY_LOG_FILE, RELAY_LOG_POS или MASTER_DELAY, даже когда поток SQL работает. Эти три параметра могут не использоваться, когда поток ввода-вывода работает.
И поток SQL, и поток ввода-вывода должны быть остановлены перед выдачей CHANGE MASTER TO ... MASTER_AUTO_POSITION = 1.
Вы можете проверить текущее состояние подчиненных потоков SQL и потоков ввода / вывода, используя SHOW SLAVE STATUS.
Если вы используете репликацию на основе операторов и временные таблицы, оператор CHANGE MASTER TO, следующий за оператором STOP SLAVE, может оставить позади временные таблицы на ведомом устройстве. Как часть этого набора улучшений, теперь выдается предупреждение, когда CHANGE MASTER TO выдается после STOP SLAVE, когда используется репликация на основе инструкций и Slave_open_temp_tables остается больше 0.
Тестирование
Набор тестов MySQL теперь использует InnoDB в качестве механизма хранения по умолчанию.
Теперь возможна репликация из нескольких источников.
MySQL Multi-Source Replication добавляет возможность репликации от нескольких мастеров к ведомому. Топологии MySQL Multi-Source Replication можно использовать для резервного копирования нескольких серверов на один сервер, объединения сегментов таблиц и консолидации данных с нескольких серверов на один сервер.
Как часть MySQL Multi-Source Replication, каналы репликации были добавлены. Каналы репликации позволяют ведомому устройству открывать несколько соединений для репликации, причем каждый канал является соединением с ведущим.
Таблица схемы производительности групповой репликации
MySQL 5.7 добавляет ряд новых таблиц в схему производительности для предоставления информации о группах и каналах репликации. К ним относятся следующие таблицы:
MySQL 5.7 добавляет ряд новых таблиц в схему производительности для предоставления информации о группах и каналах репликации. К ним относятся следующие таблицы:
Lication replication_applier_configuration
Lication replication_applier_status
Lication replication_applier_status_by_coordinator
Lication replication_applier_status_by_worker
Lication replication_connection_configuration
Lication replication_connection_status
Lication replication_group_members
Lication replication_group_member_stats
Все эти таблицы были добавлены в MySQL 5.7.2, за исключением replication_group_members и replication_group_member_stats, которые были добавлены в MySQL 5.7.6.
Групповая репликация SQL
Следующие операторы были добавлены в MySQL 5.7.6 для управления групповой репликацией:
✦ START GROUP_REPLICATION
✦ STOP GROUP_REPLICATION
Особенности амортизации
Следующие функции устарели в MySQL 5.7 и могут быть или будут удалены в следующих сериях. Там, где показаны альтернативы, приложения должны быть обновлены, чтобы использовать их.
Режимы SQL ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE и NO_ZERO_IN_DATE устарели, но включены по умолчанию. Долгосрочный план состоит в том, чтобы включить их в строгий режим SQL и удалить их как явные режимы в будущем выпуске MySQL.
Устаревшие режимы SQL ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE и NO_ZERO_IN_DATE все еще распознаются, так что операторы, которые их называют, не вызывают ошибку, но будут удалены в будущей версии MySQL. Чтобы заранее подготовиться к версиям MySQL, в которых эти имена режимов не существуют, приложения должны быть изменены, чтобы не ссылаться на них.
Изменения в отчетах по управлению учетными записями делают следующие функции устаревшими. Теперь они устарели.
Использование GRANT для изменения свойств учетной записи, кроме назначений привилегий. Это включает в себя свойства аутентификации, SSL и ограничения ресурсов. Вместо этого установите такие свойства во время создания учетной записи с помощью CREATE USER или измените их впоследствии с помощью ALTER USER.
ОПРЕДЕЛЕНО ПАРОЛЕМ Синтаксис hash_string для CREATE USER и GRANT. Вместо этого используйте IDENTIFIED WITH auth_plugin AS 'hash_string' для CREATE USER и ALTER USER, где значение 'hash_string' находится в формате, совместимом с указанным плагином.
Оператор SET PASSWORD и функция PASSWORD (). Вместо этого используйте ALTER USER, чтобы изменить пароли учетной записи, и избегайте использования PASSWORD () в любом контексте.
Системная переменная old_passwords. Плагины аутентификации учетной записи больше нельзя оставлять неопределенными в таблице mysql.user, поэтому любой оператор, который назначает пароль из строки открытого текста, может однозначно определить метод хеширования, который будет использоваться для строки, перед сохранением его в таблице mysql.user. Это делает old_passwords излишним.
Полагаться на неявную сортировку GROUP BY в MySQL 5.7 не рекомендуется. Для достижения определенного порядка сортировки сгруппированных результатов предпочтительно использовать явное предложение ORDER BY. GROUP BY sorting - это расширение MySQL, которое может измениться в будущем выпуске; например, чтобы оптимизатор мог упорядочивать группировки любым способом, который он считает наиболее эффективным, и избегать затрат на сортировку.
Ключевые слова EXTENDED и PARTITIONS для оператора EXPLAIN. Эти ключевые слова все еще распознаются, но теперь не нужны, потому что их эффект всегда включен.
Опция --skip-innodb и ее синонимы (--innodb = OFF, --disable-innodb и т. д.). Эти параметры не действуют с MySQL 5.7. потому что InnoDB нельзя отключить.
Системная переменная log_warnings и опция сервера --log-warnings. Вместо этого используйте системную переменную log_error_verbosity.
Системная переменная binlog_max_flush_queue_time ничего не делает в MySQL 5.7 и устарела с MySQL 5.7.9.
Начиная с MySQL 5.7.10, системная переменная innodb_support_xa, которая обеспечивает поддержку InnoDB для двухфазного принятия в транзакциях XA, устарела. Начиная с MySQL 5.7.10 поддержка InnoDB для двухфазной фиксации в транзакциях XA всегда включена.
Системные переменные metadata_locks_cache_size и metadata_locks_hash_instances. Они ничего не делают с MySQL 5.7.4.
Системная переменная sync_frm.
Глобальные системные переменные character_set_database и collation_database устарели и будут удалены в будущей версии MySQL.
Присвоение значения переменным сеанса character_set_database и collation_database станет доступным только для чтения в будущей версии MySQL, и назначения приведут к ошибке. Будет по-прежнему возможен доступ к переменным сеанса для определения набора символов базы данных и сопоставления для базы данных по умолчанию.
Функции шифрования ENCRYPT (), ENCODE (), DECODE (), DES_ENCRYPT () и DES_DECRYPT (). Попробуйте вместо этого использовать AES_ENCRYPT () и AES_DECRYPT ().
Пространственная функция MBREqual (). Вместо этого используйте MBREquals ().
Таблица INFORMATION_SCHEMA.PROFILING. Вместо этого используйте схему производительности.
Поддержка mysqld_safe для вывода системного журнала. Вместо этого используйте поддержку системного журнала собственного сервера.
Преобразование имен баз данных до MySQL 5.1, содержащих специальные символы, в формат 5.1 с добавлением префикса # mysql50 #. Поскольку такие преобразования устарели, опции --fix-db-names и --fix-table-names для mysqlcheck и предложение UPGRADE DATA DIRECTORY NAME для оператора ALTER DATABASE также устарели.
Обновления поддерживаются только из одной серии выпусков в другую (например, с 5,0 до 5,1 или с 5,1 до 5,5), поэтому в преобразовании более старых имен баз данных 5.0 в текущие версии MySQL практически не требуется В качестве обходного пути обновите установку MySQL 5.0 до MySQL 5.1 перед обновлением до более позднего выпуска.
Удаленные функции
Следующие элементы устарели и были удалены в MySQL 5.7. Там, где показаны альтернативы, приложения должны быть обновлены, чтобы использовать их.
Удалена поддержка паролей, использующих старый формат хеширования паролей до 4.1, что включает в себя следующие изменения. Приложения, которые используют какие-либо функции, которые больше не поддерживаются, должны быть изменены.
Плагин аутентификации mysql_old_password удален. Учетные записи, использующие этот плагин, отключаются при запуске, и сервер записывает сообщение «неизвестный плагин» в журнал ошибок. Для получения инструкций по обновлению учетных записей, которые используют этот плагин.
Опция --secure-auth для серверных и клиентских программ используется по умолчанию, но теперь она недоступна. Это устарело и будет удалено в будущем выпуске MySQL.
Опция --skip-secure-auth для серверных и клиентских программ больше не поддерживается, и ее использование приводит к ошибке.
Системная переменная secure_auth допускает только значение 1; значение 0 больше не разрешено.
Для системной переменной old_passwords значение 1 (создание хэшей до 4.1) больше не разрешено.
Функция OLD_PASSWORD () удалена.
В MySQL 5.6.6 тип данных YEAR (2) устарел. Поддержка ГОДА (2) теперь удалена. После обновления до MySQL 5.7.5 или новее все оставшиеся столбцы YEAR (2) должны быть преобразованы в YEAR (4), чтобы снова их можно было использовать. Для конверсионных стратегий.
Системная переменная innodb_mirrored_log_groups. Единственное поддерживаемое значение было 1, поэтому оно не имело цели.
Системная переменная storage_engine. Вместо этого используйте default_storage_engine.
Системная переменная thread_concurrency.
Системная переменная timed_mutexes. Это ничего не делает и не имеет никакого эффекта.
Предложение IGNORE для ALTER TABLE.
INSERT DELAYED больше не поддерживается. Сервер распознает, но игнорирует ключевое слово DELAYED, обрабатывает вставку как вставку без задержки и генерирует предупреждение ER_WARN_LEGACY_SYNTAX_CONVERTED. («INSERT DELAYED больше не поддерживается. Оператор был преобразован в INSERT.») Точно так же, REPLACE DELAYED обрабатывается как незамедлительная замена. Ключевое слово DELAYED будет удалено в следующем выпуске.
Кроме того, было удалено несколько параметров или функций, связанных с DELAYED:
Опция --delayed-insert для mysqldump.
Столбцы COUNT_WRITE_DELAYED, SUM_TIMER_WRITE_DELAYED, MIN_TIMER_WRITE_DELAYED, AVG_TIMER_WRITE_DELAYED и MAX_TIMER_WRITE_DELAYED в таблице схемы производительности table_lock_waits_summary_bytable.
mysqlbinlog больше не пишет комментарии с упоминанием INSERT DELAYED.
Символическая ссылка на базу данных в Windows, используемая для файлов .sym, была удалена, поскольку она избыточна благодаря встроенной поддержке символических ссылок, доступной с помощью mklink. Любые символические ссылки в файле .sym будут игнорироваться и должны быть заменены символическими ссылками, созданными с помощью mklink.
Неиспользованные параметры --basedir, --datadir и --tmpdir для mysql_upgrade были удалены.
Ранее параметры программы можно было указывать полностью или в виде любого однозначного префикса. Например, опция --compress может быть задана для mysqldump как --compr, но не как --comp, поскольку последняя неоднозначна. Префиксы опций больше не поддерживаются; принимаются только полные варианты. Это связано с тем, что префиксы могут вызывать проблемы при внедрении новых опций для программ, а префикс, который в настоящее время является однозначным, может стать неоднозначным в будущем. Некоторые последствия этого изменения:
Опция --key-buffer теперь должна быть указана как --key-buffer-size.
Опция --skip-grant теперь должна быть указана как --skip-grant-tables.
ПОКАЗАТЬ ДВИГАТЕЛЬ INNODB Вывод MUTEX удален в MySQL 5.7.2. Сопоставимая информация может быть сгенерирована путем создания представлений в таблицах схемы производительности.
InnoDB Tablespace Monitor и InnoDB Table Monitor удаляются в MySQL 5.7.4. Для Tablespace Monitor эквивалентная функциональность будет представлена до выпуска MySQL 5.7 в GA. Для Табличного монитора эквивалентную информацию можно получить из таблиц InnoDB INFORMATION_SCHEMA.
Таблицы со специальными именами, используемые для включения и отключения стандартных InnoDB Monitor и InnoDB Lock Monitor (innodb_monitor и innodb_lock_monitor), удалены в MySQL 5.7.4 и заменены двумя динамическими системными переменными: innodb_status_output и innodb_status_output_locks.
Системные переменные innodb_use_sys_malloc и innodb_additional_mem_pool_size, которые устарели в MySQL 5.6.3, удалены в MySQL 5.7.4.
Утилиты msql2mysql, mysql_convert_table_format, mysql_find_rows, mysql_fix_extensions, mysql_setpermission, mysql_waitpid, mysql_zap, mysqlaccess и mysqlbug.
Утилита mysqlhotcopy. Альтернативы включают mysqldump и MySQL Enterprise Backup.
Скрипт binary-configure.sh.
Параметр INNODB_PAGE_ATOMIC_REF_COUNT CMake удален в MySQL 5.7.5.
Опция innodb_create_intrinsic удалена в MySQL 5.7.6.
Параметр innodb_optimize_point_storage и связанные с ним внутренние типы данных (DATA_POINT и DATA_VAR_POINT) были удалены.
Опция innodb_log_checksum_algorithm удалена в MySQL 5.7.9.
Спасибо за ваше время и внимание!
Новый контент: Composer: менеджер зависимостей для PHP , R программирования