mariadb 11.4
Für die Verwendung von MariaDB wird ab sofort das offizielle MariaDB-Docker-Image in der Version 11.4 verwendet:
mariadb:11.4
Konfiguration für docker-compose
Das Image kann in einer docker-compose.yml wie folgt eingebunden werden:
database:
image: mariadb:11.4
volumes:
- db_data:/var/lib/mysql
- ./config/mariadb:/etc/mysql/conf.d
env_file:
- brandbox.docker.env
environment:
MYSQL_HOST: database.${COMPOSE_PROJECT_NAME}
MARIADB_INITDB_SKIP_TZINFO: 1
labels:
traefik.enable: "false"
ports:
- "3306"
cpus: 0.75
mem_limit: 1000M
networks:
internal:
aliases:
- database.${COMPOSE_PROJECT_NAME}
volumes:
db_data:
my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sort_buffer_size=1M
innodb_buffer_pool_size=512M
innodb_lru_scan_depth=128
innodb_ft_max_token_size=84
innodb_ft_result_cache_limit=2000000000
innodb_ft_total_cache_size=640000000
innodb_io_capacity=150000
innodb_io_capacity_max=150000
innodb_open_files=40M
open_files_limit=40M
tmp_table_size=256M
max_allowed_packet=1024M
max_heap_table_size=256M
query_cache_limit=16M
query_cache_size=128M
ssl=1
ssl-ca=/etc/mysql/conf.d/ca.crt.pem
ssl-cert=/etc/mysql/conf.d/server.crt.pem
ssl-key=/etc/mysql/conf.d/server.key.pem
In der brandbox.docker.env müssen die Pfade zu den Zertifikaten für die Verwendung in der Anwendung korrekt gesetzt werden:
MYSQL_SSL_KEY=/etc/mysql/conf.d/server.key.pem
MYSQL_SSL_CRT=/etc/mysql/conf.d/server.crt.pem
MYSQL_SSL_CA_CRT=/etc/mysql/conf.d/ca.crt.pem
Logging
Es ist möglich, über Einträge in der my.cnf das Query-Log und das Slow-Log zu aktivieren:
my.cnf
Über einen Custom-Entrypoint können diese Logdateien in die Standardausgabe (stdout) geschrieben werden, damit sie über docker logs bzw. Graylog ausgewertet werden können:
docker-compose.yml (Auszug)
Die Datei entrypoint.sh muss dazu im definierten Bind-Mount-Ordner abgelegt werden (mariadb/conf) und wie folgt aussehen:
Wichtig: Die Datei entrypoint.sh benötigt Ausführungsrechte für "other":
Migration von 10.4 zu 11.4
Alle Änderungen der neuen Version Changes and Improvements in MariaDB 11.4
docker.compose.yml auf 11.4 umstellen und MARIADB_AUTO_UPGRADE deaktiveren bzw. entfernen
mariadb-upgrade -u root -p --skip-ssl ausführen
Änderungen
dosql funktioniert nicht mehr, man muss nun docker exec -it CONTAINER bash nutzen
ssl sollte man komplett entfernen, da man sonst immer --skip-ssl nutzen muss