Skip to content

Latest commit

 

History

History
104 lines (75 loc) · 2.67 KB

File metadata and controls

104 lines (75 loc) · 2.67 KB
title MariaDB
slug mariadb
category tecnico
status active
summary
updated_at 2026-05-11
tags

MariaDB

Setup

  • Veja o projeto no repositório do GitHub.

  • Configure o stack com uma tag de MariaDB no arquivo .env, por exemplo MYSQL_IMAGE=mariadb:11.4.

  • Suba o serviço:

    cd /root/projects/mysql
    docker compose up -d
  • Adicione na crontab a rotina para gerar o dump diário:

    # Backup diário do MariaDB às 02:40
    40 02 * * * export $(cat /root/projects/mysql/.env|grep MYSQL_ROOT_PASSWORD | xargs) && docker compose -f /root/projects/mysql/docker-compose.yml exec mysql /usr/bin/mariadb-dump -u root --password="$MYSQL_ROOT_PASSWORD" --all-databases --add-drop-database > /root/projects/mysql/volumes/mysql/dump/dump.sql
  • O arquivo de dump deve manter sempre o mesmo nome para facilitar deduplicação ou incremental por diff na ferramenta de backup.

  • Depois, faça o envio desse dump.sql para a rotina central de backup, por exemplo via Duplicati.

Atualização

  • Verifique a versão atual:

    cd /root/projects/mysql
    docker compose exec mysql mariadb -V
  • Gere backup completo antes da mudança:

    cd /root/projects/mysql
    set -a && . ./.env && set +a && docker compose exec -T mysql /usr/bin/mariadb-dump -u root --password="$MYSQL_ROOT_PASSWORD" --all-databases --add-drop-database > /root/projects/mysql/backup-before-upgrade.sql
  • Pare o stack atual:

    cd /root/projects/mysql
    docker compose stop
  • Altere a versão da imagem no .env:

    MYSQL_IMAGE=mariadb:11.4.5
  • Confira as notas oficiais da versão de origem e destino antes de subir a nova imagem.

  • Baixe a nova imagem e reinicie:

    cd /root/projects/mysql
    docker compose pull
    docker compose up -d
  • Valide a versão e o acesso ao banco:

    cd /root/projects/mysql
    docker compose exec mysql mariadb -V
    set -a && . ./.env && set +a && docker compose exec -T mysql mariadb -u root --password="$MYSQL_ROOT_PASSWORD" -e 'SHOW DATABASES;'
  • Se houver falha no upgrade, restaure a partir do dump gerado antes da mudança.

Problemas

  • Erro:

    mysql-1 | 2025-04-08  8:55:02 0 [Warning] Aborted connection 0 to db: 'unconnected' user: 'unauthenticated' host: 'connecting host' (Too many connections)
    
  • Possível causa: limite de conexões simultâneas atingido.

  • Possível solução: aumentar max_connections em um arquivo dentro de conf.d, por exemplo conf.d/custom.cnf.

    [mysqld]
    max_connections = 200
  • Depois da alteração, recrie o container:

    cd /root/projects/mysql
    docker compose up -d