Soluzione della community

Installa MariaDB su CasaOS o ZimaOS con dati persistenti

A 2023 CasaOS tutorial introduced MariaDB as a central database service for self-hosted applications.

In sintesi: tratta MariaDB come dati persistenti, non come un semplice container usa e getta

Il precedente articolo su CasaOS presentava MariaDB come database centrale per le app self-hosted. Il principio di distribuzione è ancora valido, ma l’aspetto importante non è fare clic su Installa: è fissare una versione dell’immagine sensata, impostare una sola volta le credenziali di inizializzazione e collegare la directory del database a uno storage persistente.

Usa il container ufficiale di MariaDB come base

services:
  mariadb:
    image: mariadb:lts
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: change-this-now
      MARIADB_DATABASE: appdb
      MARIADB_USER: appuser
      MARIADB_PASSWORD: change-this-too
    volumes:
      - /path/to/mariadb:/var/lib/mysql
    ports:
      - "3306:3306"

La documentazione sui container di MariaDB descrive l’immagine ufficiale e i relativi tag di versione. Il riferimento alle variabili d’ambiente dell’immagine spiega le impostazioni MARIADB_*.

Le variabili di inizializzazione contano solo con una directory dati vuota

Se /var/lib/mysql contiene già un database, modificare MARIADB_ROOT_PASSWORD o MARIADB_DATABASE in Compose non ricrea l’istanza esistente. Questo è un motivo comune per cui si pensa che “la nuova password non abbia funzionato”.

La guida hardware di MariaDB tratta il dimensionamento e la posizione dello storage.

Non esporre la porta 3306 su Internet

Se solo i container locali devono usare MariaDB, mantienili sulla stessa rete Docker e ometti del tutto la porta dell’host. Se i client della LAN devono accedere al database, assoc**iala** solo dove necessario e crea utenti del database con ambiti ristretti per host e privilegi.

Usa Adminer per la gestione, non come database

Adminer è solo un’interfaccia web. Schema, utenti e dati risiedono in MariaDB. La guida hardware di Adminer è utile quando il database è già operativo.

Esegui il backup del database, non solo del file Compose

Un file Compose può ricreare il container. Non può ricreare i tuoi dati. Esegui il backup della directory persistente del database oppure usa dump logici, quindi verifica un ripristino prima di aggiornare alle versioni principali successive.