Первые впечатления и дейстия после обновления MySQL с версии 5.7 до 8.0.11

в 19:25, , рубрики: mysql

Решение об обновлении базы данных MySQL принял после того, как прочитал на сайте разработчика, что в восьмой версии внедрена более полная поддержка UTF. В частности в MySQL 8.0.11 используются регулярные выражения на базе ICU, International Components for Unicode.

Первое, что заметил это то, что границы слова в регулярных выражениях теперь нельзя обозначить как:

SELECT 'слово' REGEXP '[[:<:]]слово[[:>:]]'; 

Границы слова в новой версии обозначаются таким образом:

'\bслово\b'


Кроме того, перестал работать LOAD DATA LOCAL INFILE, то есть импорт данных из текстового файла на локальном компьютере. Оказывается, в MySQL 8.0 по умолчанию глобальная переменная local_infile выставлена OFF. На сайте разработчика пишут, что это было сделано как мера безопасности. Значение этой переменной можно посмотреть такой командой:

SHOW GLOBAL VARIABLES LIKE 'local_infile';

Решил эту проблему выполнением в терминале:

SET GLOBAL local_infile = true;

То есть вписался в терминале в MySQL обычным:

mysql -u root -p

и выполнил вышеуказанную команду.

Базы данных я на всякий случай экспортировал в PHPMyAdmin в SQL формате в GZ архивы. И не пожалел. Просто подставить файлы данных из 5.7 в 8.0.11 не получается. Восьмая версия их не распознаёт. А импорт данных из SQL файлов прошёл без замечаний.

И в общем-то всё. Остальное всё работает нормально. Уже вижу, что в восьмой версии регулярные выражения ICU имеют более широкие возможности, что немаловажно для работы с кириллицей.

Автор: рекрут

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js