Erste Eindrücke und Aktionen nach dem Upgrade von MySQL von Version 5.7 auf 8.0.11

MySQL traf die Entscheidung, die Datenbank zu aktualisieren, nachdem auf der Entwickler-Website gelesen wurde, dass in der achten Version eine umfassendere Unterstützung für UTF eingeführt wurde. Insbesondere verwendet MySQL 8.0.11 reguläre Ausdrücke, die auf ICU, International Components for Unicode, basieren.

Das erste, was mir auffiel, war, dass die Grenzen des Wortes in regulären Ausdrücken nicht mehr wie folgt bezeichnet werden können:

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

Die Wortgrenzen in der neuen Version werden wie folgt bezeichnet:

 '\\b\\b' 

Außerdem funktionierte LOAD DATA LOCAL INFILE nicht mehr, dh es wurden Daten aus einer Textdatei auf dem lokalen Computer importiert. Es stellt sich heraus, dass in MySQL 8.0 die globale Variable local_infile standardmäßig auf OFF gesetzt ist. Sie schreiben auf der Entwicklerseite, dass dies als Sicherheitsmaßnahme getan wurde. Der Wert dieser Variablen kann mit dem folgenden Befehl angezeigt werden:

 SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

Ich habe dieses Problem durch Ausführen im Terminal gelöst:

 SET GLOBAL local_infile = true; 

Das heißt, es passt wie gewohnt in das Terminal von MySQL:

 mysql -u root -p 

und führte den obigen Befehl aus.

Für alle Fälle habe ich Datenbanken im SQL-Format in GZ-Archiven nach PHPMyAdmin exportiert. Und habe es nicht bereut. Das einfache Ersetzen von Datendateien von 5.7 auf 8.0.11 funktioniert nicht. Die achte Version erkennt sie nicht. Das Importieren von Daten aus SQL-Dateien verlief kommentarlos.

Und das ist alles. Der Rest funktioniert gut. Ich kann bereits sehen, dass reguläre Ausdrücke der Intensivstation in der achten Version mehr Funktionen haben, was für die Arbeit mit dem kyrillischen Alphabet wichtig ist.

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


All Articles