hallo@webwilli.at
hallo@webwilli.at +43 676 9724611
Stefan Schoner
14.11.2023

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.

Webwilli
Webwilli