Primeras impresiones y acciones después de actualizar MySQL de la versión 5.7 a 8.0.11

MySQL tomó la decisión de actualizar la base de datos después de leer en el sitio web del desarrollador que en la octava versión se introdujo un soporte más completo para UTF. En particular, MySQL 8.0.11 usa expresiones regulares basadas en ICU, International Components for Unicode.

Lo primero que noté fue que los límites de la palabra en expresiones regulares ya no se pueden denotar como:

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

Los límites de las palabras en la nueva versión se denotan de la siguiente manera:

 '\\b\\b' 

Además, LOAD DATA LOCAL INFILE dejó de funcionar, es decir, importó datos de un archivo de texto en la computadora local. Resulta que en MySQL 8.0 la variable global local_infile está configurada en OFF por defecto. Escriben en el sitio del desarrollador que esto se hizo como una medida de seguridad. El valor de esta variable se puede ver con el siguiente comando:

 SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

Resolví este problema ejecutando en la terminal:

 SET GLOBAL local_infile = true; 

Es decir, cabe en el terminal en MySQL como de costumbre:

 mysql -u root -p 

y ejecuté el comando anterior.

Por si acaso, exporté bases de datos a PHPMyAdmin en formato SQL en archivos GZ. Y no me arrepiento. Simplemente sustituir archivos de datos de 5.7 a 8.0.11 no funciona. La octava versión no los reconoce. Y la importación de datos de archivos SQL fue sin comentarios.

Y eso es todo. El resto está funcionando bien. Ya puedo ver que en la octava versión, las expresiones regulares de ICU tienen más características, lo cual es importante para trabajar con el alfabeto cirílico.

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


All Articles