Primeiras impressões e ações após a atualização do MySQL da versão 5.7 para 8.0.11

O MySQL tomou a decisão de atualizar o banco de dados depois de ler no site do desenvolvedor que na oitava versão foi introduzido um suporte mais abrangente para UTF. Em particular, o MySQL 8.0.11 usa expressões regulares baseadas em ICU, International Components for Unicode.

A primeira coisa que notei foi que os limites das palavras em expressões regulares não podem mais ser denotados como:

SELECT '' REGEXP '[[:<:]][[:>:]]'; 

Os limites da palavra na nova versão são indicados da seguinte maneira:

 '\\b\\b' 

Além disso, LOAD DATA LOCAL INFILE parou de funcionar, ou seja, importar dados de um arquivo de texto no computador local. Acontece que no MySQL 8.0 a variável global local_infile está definida como OFF por padrão. Eles escrevem no site do desenvolvedor que isso foi feito como uma medida de segurança. O valor dessa variável pode ser visualizado com o seguinte comando:

 SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

Resolvi esse problema executando no terminal:

 SET GLOBAL local_infile = true; 

Ou seja, ele se encaixa no terminal no MySQL como de costume:

 mysql -u root -p 

e executou o comando acima.

Por precaução, eu exportei bancos de dados para o PHPMyAdmin no formato SQL nos arquivos GZ. E não se arrependeu. Simplesmente substituir arquivos de dados de 5.7 a 8.0.11 não funciona. A oitava versão não os reconhece. E a importação de dados de arquivos SQL ficou sem comentários.

E isso é tudo. O resto está funcionando bem. Eu já posso ver que na oitava versão, expressões regulares da UTI têm mais recursos, o que é importante para trabalhar com o alfabeto cirílico.

Source: https://habr.com/ru/post/pt418899/


All Articles