In case an on premise Simplifier working with our docker-compose.yml has been installed before August 2023, then it’s MySQL container has been created with the setting –default-authentication-plugin=mysql_native_password which is no longer available in MySQL 8.4 (which we are using since MC2602).
In this case a manual migration is needed.
In case you are updating from MC2512 or LTS 10
Before upgrading to MC26xx or (in future) a later LTS, you will need to migrate the database users to use another authentication plugin.
Migrate the users
Connect to the mysql container and use the mysql and switch to the mysql schema:
$ docker exec -it mysql bash
$ mysql -u root -p
mysql> use mysqlThen search for all the users, that still use the navie authentication plugin:
mysql> select User, Host, plugin from user where plugin like 'mysql_native_password';Change the authentication method to change each user’s authentication method:
-
you will have to replace <USER> with the user’s name (typically you find ‘simplifier’ and ‘root’ as users)
-
you will have to replace <PASSWORD> with the user’s password (the password of ‘simplifier’ can be found in the .env file in DB_PASSWORD, the password of ‘root’ is DB_ROOT_PASSWORD in the same file)
-
probably you also have a root@localhost , then you will also need to replace ‘%’ with ‘localhost’
mysql> ALTER USER '<USER>'@'%' IDENTIFIED WITH caching_sha2_password BY '<PASSWORD>';Then exit the mysql client and the mysql container.
mysql> exit
$ exitAfter that you can follow the usual upgrade path (roughly: docker compose down, pull the latest docker-compose.yml, adapt the SIMPLIFIER_VERSION in .env, docker compose up)
In case this issue occurs, during update
In case you are currently upgrading to e.g. MC2602 or MC2604 and the mysqlinit container is not completing, then you probably still have a user with a native password stored.
The error message in the mysqlinit looks like this:
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'-
Now you should change the docker-compose.yml.
-
Postfix the ‘command’ of the ‘mysql’ container with –mysql-native-password=ON.
-
-
Apply these changes with:
-
$ docker compose down -
$ docker compose up
-
-
Now you can follow the steps in “Migrate the users”
-
After that you can remove the postfix –mysql-native-password=ON again
-
Again a ‘down’ and a ‘up’ and…
-
$ docker compose down -
$ docker compose up
-
-
… then go on with the migration to e.g. MC2604











