MySQL a pris la décision de mettre à jour la base de données après avoir lu sur le site Web du développeur que dans la huitième version, un support plus complet pour UTF a été introduit. En particulier, MySQL 8.0.11 utilise des expressions régulières basées sur ICU, International Components for Unicode.
La première chose que j'ai remarquée, c'est que les limites du mot dans les expressions régulières ne peuvent plus être désignées comme:
SELECT '' REGEXP '[[:<:]][[:>:]]';
Les limites des mots dans la nouvelle version sont indiquées comme suit:
'\\b\\b'
En outre, LOAD DATA LOCAL INFILE a cessé de fonctionner, c'est-à-dire, l'importation de données à partir d'un fichier texte sur l'ordinateur local. Il s'avère que dans MySQL 8.0, la variable globale local_infile est définie sur OFF par défaut. Ils écrivent sur le site du développeur que cela a été fait par mesure de sécurité. La valeur de cette variable peut être visualisée avec la commande suivante:
SHOW GLOBAL VARIABLES LIKE 'local_infile';
J'ai résolu ce problème en exécutant dans le terminal:
SET GLOBAL local_infile = true;
Autrement dit, il s'intègre dans le terminal de MySQL comme d'habitude:
mysql -u root -p
et exécuté la commande ci-dessus.
Au cas où, j'ai exporté des bases de données vers PHPMyAdmin au format SQL dans les archives GZ. Et je ne l'ai pas regretté. La simple substitution de fichiers de données de 5.7 à 8.0.11 ne fonctionne pas. La huitième version ne les reconnaît pas. Et l'importation de données à partir de fichiers SQL s'est déroulée sans commentaire.
Et c'est tout. Le reste fonctionne bien. Je peux déjà voir que dans la huitième version, les expressions régulières de l'ICU ont plus de fonctionnalités, ce qui est important pour travailler avec l'alphabet cyrillique.