MariaDB-Tuning (Custom-Config)

MariaDB-Tuning per Custom-Config

Fuer jede Datenbank kannst du eigene MariaDB-Einstellungen setzen — analog zum PHP-Custom-INI. Die Werte ueberschreiben die Webunit-Defaults.

Wo?

Admin-Panel → Subscription → Bearbeiten → Tab Datenbanken → pro Datenbank ein Feld Custom MariaDB-Config.

Webunit-Defaults (bereits aktiv fuer alle DBs)

[mysqld]
max_allowed_packet = 64M
wait_timeout        = 600
interactive_timeout = 600
max_connections     = 200

Alles was du ins Custom-Feld schreibst, ueberschreibt diese Werte.

Copy-&-Paste-Snippets

Grosse Import-/Export-Operationen (grosse Bloetter, PDF-Anhaenge in DB)

max_allowed_packet = 256M

Shopware / grosser Katalog mit vielen Produkten

max_allowed_packet = 128M
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
tmp_table_size = 128M
max_heap_table_size = 128M
sort_buffer_size = 8M
join_buffer_size = 8M

WordPress mit vielen Plugins

max_allowed_packet = 64M
innodb_buffer_pool_size = 256M
tmp_table_size = 64M
max_heap_table_size = 64M

Slow-Query-Log fuer Performance-Analyse

slow_query_log = 1
long_query_time = 1
log_queries_not_using_indexes = 1

Slow-Log landet im DB-Container unter /var/lib/mysql/*-slow.log und ist per SSH oder docker exec einsehbar.

Utf8mb4 mit korrekter Collation (Emojis in Kunden-Kommentaren)

character-set-server = utf8mb4
collation-server     = utf8mb4_unicode_ci

Strikter SQL-Mode fuer neue Projekte

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

Whitelist — was ist erlaubt?

Erlaubt sind gaengige Tuning-Parameter fuer:

Nicht-erlaubte Keys werden still verworfen — landen als Kommentar in der generierten 99-webunit-custom.cnf (im DB-Container unter /etc/mysql/mariadb.conf.d/). Verworfen werden aus Sicherheitsgruenden z.B. secure_file_priv, plugin_dir, log_bin, datadir — die wuerden den Container-Betrieb kompromittieren.

Konfigurations-Format

Was passiert nach dem Speichern?

  1. Werte werden gegen die Whitelist geprueft (Verwerfen bei Verstoss).
  2. Neue 99-webunit-custom.cnf wird auf der Node erzeugt.
  3. Der DB-Container wird noch nicht automatisch neu gestartet — du siehst den neuen Wert erst nach einem Restart:
    Admin-Panel → Subscription → Container → "DB-Container neustarten"
    
    (oder wir bauen das noch als Auto-Restart bei Config-Aenderung — im Zweifel: uns ansprechen).

Aktuelle Werte pruefen

Per SSH ins Sub-Container:

mariadb -u <username> -p<pass> -e "SHOW VARIABLES LIKE 'max_allowed_packet'"

Oder via phpMyAdmin (Zahnrad-Icon rechts oben, dann "Server-Variablen").

Wichtige Anmerkungen


Revision #11
Created 3 September 2026 13:41:08 by webunitadmin
Updated 7 September 2026 15:16:15 by webunitadmin