Falls ein On-Premise Simplifier, der mit unserer docker-compose.yml arbeitet, vor August 2023 installiert wurde, dann wurde sein MySQL-Container mit der Einstellung –default-authentication-plugin=mysql_native_password erstellt, die in MySQL 8.4 (das wir seit MC2602 verwenden) nicht mehr verfügbar ist.
In diesem Fall ist eine manuelle Migration erforderlich.
Falls du ein Update von MC2512 oder LTS 10 durchführst
Bevor du auf MC26xx oder (zukünftig) eine neuere LTS-Version aktualisierst, musst du die Datenbankbenutzer migrieren, damit sie ein anderes Authentifizierungs-Plugin verwenden.
Benutzer migrieren
Verbinde dich mit dem MySQL-Container, nutze den MySQL-Client und wechsle zum MySQL-Schema:
$ docker exec -it mysql bash
$ mysql -u root -p
mysql> use mysqlSuche dann nach allen Benutzern, die noch das native Authentifizierungs-Plugin verwenden:
mysql> select User, Host, plugin from user where plugin like 'mysql_native_password';Ändere die Authentifizierungsmethode für jeden einzelnen Benutzer:
-
Du musst <USER> durch den Namen des Benutzers ersetzen (normalerweise findest du „simplifier“ und „root“ als Benutzer)
-
Du musst <PASSWORD> durch das Passwort des Benutzers ersetzen (das Passwort von „simplifier“ findest du in der .env-Datei unter DB_PASSWORD, das Passwort von „root“ ist DB_ROOT_PASSWORD in derselben Datei)
-
Wahrscheinlich hast du auch einen root@localhost, dann musst du ebenfalls „%“ durch „localhost“ ersetzen
mysql> ALTER USER '<USER>'@'%' IDENTIFIED WITH caching_sha2_password BY '<PASSWORD>';Verlasse anschließend den MySQL-Client und den MySQL-Container.
mysql> exit
$ exitDanach kannst du dem üblichen Upgrade-Pfad folgen (grob: docker compose down, die neueste docker-compose.yml abrufen, die SIMPLIFIER_VERSION in der .env anpassen, docker compose up)
Falls dieses Problem während des Updates auftritt
Falls du gerade ein Upgrade auf z. B. MC2602 oder MC2604 durchführst und der mysqlinit-Container nicht fertig wird, hast du wahrscheinlich noch einen Benutzer mit einem gespeicherten nativen Passwort.
Die Fehlermeldung in mysqlinit sieht so aus:
I0504 09:43:52.082697 17 connect.go:47] root:<password>@tcp(mysql:3306)/mysql?checkConnLiveness=false&maxAllowedPacket=0
F0504 09:43:52.083564 17 connect.go:30] cannot connection to 'mysql:3306'-
Jetzt solltest du die docker-compose.yml ändern.
-
Ergänze das „command“ des „mysql“-Containers um den Zusatz –mysql-native-password=ON.
-
-
Wende diese Änderungen an mit:
-
$ docker compose down -
$ docker compose up
-
-
Jetzt kannst du den Schritten unter „Benutzer migrieren“ folgen
-
Danach kannst du den Zusatz –mysql-native-password=ON wieder entfernen
-
Nochmals ein „down“ und ein „up“ und …
-
$ docker compose down -
$ docker compose up
-
-
… dann fahre mit der Migration auf z. B. MC2604 fort











