Search
Write a publication
Pull to refresh
0
0
Send message
Да, конечно, но вышел на это, когда перестал работать код программы, использующий
LOAD DATA LOCAL INFILE

Обычно при обновлении версии MySQL не приходилось заново читать целые разделы.
В предыдущих версиях глобальная переменная 'local_infile' была по умолчанию ON, а в восьмой версии без предупреждения OFF.

Как я написал в заметке можно выполнять
SET GLOBAL local_infile = true;

или же прописать один раз в файле my.cnf
[mysqld]
local_infile=ON


Я потратил довольно много времени, пока не понял почему не могу загрузить данные из локального файла через
LOAD DATA LOCAL INFILE
Мне приходится много работать с регулярными выражениями на базах данных с текстами на кириллице с кодировкой utf8. В версии 5.7 приходилось иногда выполнять такое:
SELECT titre FROM `goods_a` WHERE CONVERT(titre using cp1251) collate cp1251_general_cs REGEXP '([а-яА-Я]{1,})\\(

В версии 8.0.11 регулярные выражения работают полно-масштабно напрямую с кодировкой utf8mb4 (4-Byte UTF-8 Unicode Encoding), так как используется регулярные выражения на базе ICU, International Components for Unicode.

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

В то же время обновление прошло без особых проблем, кроме тех случаев, что я описал в заметке. Надеюсь, это сохранит кому-то пару часов времени.

Information

Rating
Does not participate
Registered
Activity