| title | MariaDB |
|---|---|
| slug | mariadb |
| category | tecnico |
| status | active |
| summary | |
| updated_at | 2026-05-11 |
| tags |
-
Veja o projeto no repositório do GitHub.
-
Configure o stack com uma tag de MariaDB no arquivo
.env, por exemploMYSQL_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.sqlpara a rotina central de backup, por exemplo via Duplicati.
-
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.
-
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_connectionsem um arquivo dentro deconf.d, por exemploconf.d/custom.cnf.[mysqld] max_connections = 200
-
Depois da alteração, recrie o container:
cd /root/projects/mysql docker compose up -d