Docker compose: mysql auf mariadb upgraden
Ausgangspunkt docker-compose.yml
services:
database:
image: mysql:5.7
container_name: database
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: mypass
MYSQL_PASSWORD: mypass
MYSQL_ROOT_PASSWORD: mypass
volumes:
- ./mysql:/var/lib/mysql
Container stoppen mit docker compose down
Danach ändern wir nur das image in unserer Compose Datei.
services:
database:
image: mariadb:10.11
container_name: database
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: mypass
MYSQL_PASSWORD: mypass
MYSQL_ROOT_PASSWORD: mypass
volumes:
- ./mysql:/var/lib/mysql
Danach starten wir den container wieder mit docker compose up -d
Nun müssen wir noch das Upgrade durchführen. Dies kann man über die ENV variable MARIADB_AUTO_UPGRADE: true
lösen oder manuell im container mit mariadb-upgrade -u root -pmypass
anwerfen.
Alle mysql-Befehle wie mysqldump, mysqld ... sind aliase von mariadb-dump bzw. mariadbd. Somit kann man alte Syntax in dieser Version noch weiter verwenden. Diese sind ab Version 11 dann nicht mehr vorhanden.