17 min de leitura · Guia técnico
Configurar MariaDB 11.4 no AlmaLinux 9 significa instalar, proteger e ajustar o servidor de banco de dados para extrair o máximo de performance com segurança. Para concluir a configuração completa, siga estes passos:
- Instalar o MariaDB 11.4 via repositório oficial no AlmaLinux 9
- Iniciar o serviço e habilitar inicialização automática com systemctl
- Executar o script de segurança
mariadb-secure-installation - Ajustar o arquivo
/etc/my.cnf.d/mariadb-server.cnfpara performance - Configurar firewall e acesso remoto com restrição de IP
- Agendar backups automáticos com mariadb-dump e cron
Pré-requisitos para configurar MariaDB 11.4 no AlmaLinux 9
- Sistema operacional: AlmaLinux 9 (mínimo 9.2) com acesso root ou sudo
- RAM disponível: mínimo 1 GB; recomendado 4 GB ou mais para ajustes de buffer pool
- Acesso SSH: terminal com privilégios administrativos — veja como acessar servidores VPS Linux da AviraHost
- Firewalld ativo: para configurar regras de acesso à porta 3306
- Conexão com a internet: para baixar pacotes dos repositórios do AlmaLinux e do MariaDB
- Espaço em disco: mínimo 2 GB livres para dados e logs
Instalando o MariaDB 11.4 no AlmaLinux 9
O repositório padrão do AlmaLinux 9 oferece uma versão anterior do MariaDB. Para instalar a versão 11.4 LTS, é necessário adicionar o repositório oficial do MariaDB Foundation, que garante acesso às últimas correções e melhorias de performance desta release de longa duração.
- Adicione o repositório oficial do MariaDB 11.4:
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup \
| sudo bash -s -- --mariadb-server-version="mariadb-11.4"
[info] Checking for script prerequisites.
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
- Instale o servidor MariaDB e as ferramentas de cliente:
sudo dnf install -y MariaDB-server MariaDB-client
Installed:
MariaDB-server-11.4.x ...
MariaDB-client-11.4.x ...
Complete!
- Inicie o serviço e configure para iniciar automaticamente no boot:
sudo systemctl enable --now mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service
- Confirme que o serviço está ativo:
sudo systemctl status mariadb
● mariadb.service - MariaDB 11.4 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
Active: active (running) since ...
Com o daemon ativo, a instalação base está concluída. O próximo passo é proteger a instalação antes de qualquer ajuste de performance.
Protegendo a instalação do MariaDB com mariadb-secure-installation
A segurança do banco de dados começa imediatamente após a instalação. O script mariadb-secure-installation remove usuários anônimos, desabilita login remoto do root e elimina o banco de dados de teste — etapas essenciais antes de expor qualquer aplicação ao servidor.
sudo mariadb-secure-installation
Responda às perguntas interativas conforme abaixo:
- Enter current password for root: pressione Enter (sem senha inicial)
- Switch to unix_socket authentication:
Y(recomendado para acesso local seguro) - Change the root password:
Y— defina uma senha forte - Remove anonymous users:
Y - Disallow root login remotely:
Y - Remove test database:
Y - Reload privilege tables:
Y
Após concluir, crie um usuário administrativo dedicado para operações do dia a dia, evitando o uso direto do root:
sudo mariadb -u root
CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'SenhaForte@2024';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Para ambientes que precisam de acesso remoto ao banco de dados, consulte também o artigo sobre conectando remotamente ao MySQL via cPanel para entender os princípios de controle de acesso por IP.
Otimizando o MariaDB 11.4 para máxima performance no AlmaLinux 9
O ajuste fino do arquivo de configuração é onde a diferença real de performance acontece. O MariaDB 11.4 introduz melhorias no paralelismo de queries e no gerenciamento de memória que só são aproveitadas com parâmetros corretos no arquivo /etc/my.cnf.d/mariadb-server.cnf.
Atenção: faça backup do arquivo de configuração antes de qualquer alteração. Um erro de sintaxe impede o MariaDB de iniciar.
sudo cp /etc/my.cnf.d/mariadb-server.cnf /etc/my.cnf.d/mariadb-server.cnf.bak
Abra o arquivo para edição:
sudo nano /etc/my.cnf.d/mariadb-server.cnf
Adicione ou ajuste os seguintes parâmetros na seção [mysqld]:
[mysqld]
# Memória — ajuste para 70-80% da RAM total disponível
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 2
# I/O e durabilidade
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_log_file_size = 256M
# Conexões
max_connections = 150
thread_cache_size = 16
# Slow query log para diagnóstico
slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow.log
long_query_time = 1
# Cache de tabelas
table_open_cache = 4000
open_files_limit = 65535
# Charset padrão
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
Salve o arquivo e reinicie o serviço para aplicar as mudanças:
sudo systemctl restart mariadb
Verifique se o MariaDB iniciou sem erros:
sudo journalctl -u mariadb --since "1 minute ago" | grep -i error
(sem output indica ausência de erros)
Para confirmar que os parâmetros foram aplicados, conecte ao MariaDB e verifique:
sudo mariadb -u root -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
+-------------------------+------------+
| Variable_name | Value |
+-------------------------+------------+
| innodb_buffer_pool_size | 2147483648 |
+-------------------------+------------+
Para servidores com alta carga de leitura, considere também habilitar o Aria storage engine para tabelas temporárias internas, o que reduz I/O em operações de ordenação e agrupamento complexas — uma vantagem exclusiva do MariaDB em relação ao MySQL padrão.
Configurando acesso remoto seguro ao MariaDB no AlmaLinux 9
O acesso remoto ao banco de dados é necessário em arquiteturas onde a aplicação e o banco rodam em servidores separados. A configuração correta envolve três camadas: bind-address, permissões de usuário e regras de firewall.
Atenção: nunca exponha a porta 3306 para 0.0.0.0 sem restrição de IP no firewall. Isso representa risco crítico de segurança e pode resultar em acesso não autorizado ao banco de dados.
Edite o arquivo de configuração e ajuste o bind-address:
sudo nano /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
bind-address = 0.0.0.0
Crie um usuário com acesso restrito ao IP do servidor de aplicação:
sudo mariadb -u root
CREATE USER 'appuser'@'192.168.1.100' IDENTIFIED BY 'SenhaApp@2024';
GRANT ALL PRIVILEGES ON meu_banco.* TO 'appuser'@'192.168.1.100';
FLUSH PRIVILEGES;
EXIT;
Libere a porta 3306 no firewalld apenas para o IP específico:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload
success
Reinicie o MariaDB para aplicar o bind-address:
sudo systemctl restart mariadb
Teste a conectividade remota a partir do servidor de aplicação:
mariadb -u appuser -p -h IP_DO_SERVIDOR_DB -e "SELECT 1;"
+---+
| 1 |
+---+
| 1 |
+---+
Backup automático do MariaDB com mariadb-dump e cron
A estratégia de backup é parte fundamental da administração de qualquer banco de dados em produção. O MariaDB 11.4 inclui o mariadb-dump (equivalente moderno do mysqldump) e o Mariabackup para backups físicos incrementais.
Crie o diretório de backup e o script:
sudo mkdir -p /backup/mariadb
sudo nano /usr/local/bin/mariadb-backup.sh
Conteúdo do script:
#!/bin/bash
BACKUP_DIR="/backup/mariadb"
DATE=$(date +%F)
LOG="/var/log/mariadb-backup.log"
mariadb-dump -u root --all-databases --single-transaction \
--routines --triggers > "$BACKUP_DIR/full_$DATE.sql"
if [ $? -eq 0 ]; then
echo "[$DATE] Backup concluido com sucesso." >> "$LOG"
# Manter apenas os últimos 7 backups
find "$BACKUP_DIR" -name "*.sql" -mtime +7 -delete
else
echo "[$DATE] ERRO no backup." >> "$LOG"
fi
sudo chmod +x /usr/local/bin/mariadb-backup.sh
Adicione a entrada no crontab para execução diária às 2h da manhã:
sudo crontab -e
0 2 * * * /usr/local/bin/mariadb-backup.sh
Para backups físicos incrementais com o Mariabackup (recomendado para bancos acima de 10 GB), instale a ferramenta:
sudo dnf install -y MariaDB-backup
Execute um backup físico completo:
sudo mariabackup --backup --target-dir=/backup/mariadb/physical \
--user=root --password=SuaSenha
completed OK!
Para mais dicas sobre otimização geral de servidores Linux, consulte o artigo Dicas de Otimização de Servidores Linux da AviraHost.
Monitorando o MariaDB 11.4 em produção
O monitoramento contínuo permite identificar gargalos antes que afetem os usuários. O MariaDB 11.4 oferece variáveis de status detalhadas que revelam o comportamento real do banco em produção.
Verifique as principais métricas de performance:
sudo mariadb -u root -e "SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';"
+---------------------------------------+----------+
| Variable_name | Value |
+---------------------------------------+----------+
| Innodb_buffer_pool_read_requests | 9823441 |
| Innodb_buffer_pool_reads | 12043 |
+---------------------------------------+----------+
A taxa de acerto do buffer pool deve ser superior a 99%. Calcule com: (1 - reads/read_requests) * 100. Se estiver abaixo disso, aumente o innodb_buffer_pool_size.
Verifique conexões ativas e threads:
sudo mariadb -u root -e "SHOW GLOBAL STATUS LIKE 'Threads_%';"
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 14 |
| Threads_connected | 8 |
| Threads_created | 22 |
| Threads_running | 2 |
+-------------------+-------+
Analise as queries lentas registradas no slow query log:
sudo mysqldumpslow -s t -t 10 /var/log/mariadb/slow.log
Para queries que aparecem frequentemente no slow log, use o EXPLAIN para analisar o plano de execução e identificar ausência de índices:
sudo mariadb -u root meu_banco -e "EXPLAIN SELECT * FROM pedidos WHERE status = 'pendente';"
Problemas comuns e como resolver
Sintoma: MariaDB não inicia após alterar o arquivo de configuração
Causa: erro de sintaxe no arquivo /etc/my.cnf.d/mariadb-server.cnf ou valor inválido para um parâmetro (como innodb_buffer_pool_size maior que a RAM disponível).
Solução: verifique os logs com sudo journalctl -u mariadb -n 50 para identificar a linha com erro. Restaure o backup do arquivo de configuração com sudo cp /etc/my.cnf.d/mariadb-server.cnf.bak /etc/my.cnf.d/mariadb-server.cnf e reinicie o serviço. Valide a sintaxe antes de reiniciar com sudo mysqld --help --verbose 2>&1 | head -20.
Sintoma: Erro "Access denied for user 'root'@'localhost'"
Causa: o plugin de autenticação unix_socket está ativo e você está tentando conectar sem sudo, ou a senha do root foi alterada e não corresponde à informada.
Solução: conecte usando sudo: sudo mariadb -u root. Se precisar de autenticação por senha, altere o plugin: ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('NovaSenha'); seguido de FLUSH PRIVILEGES;.
Sintoma: Conexão remota recusada na porta 3306
Causa: o bind-address ainda está configurado como 127.0.0.1, o firewalld está bloqueando a porta, ou o usuário não tem permissão para o IP remoto.
Solução: confirme o bind-address com sudo mariadb -u root -e "SHOW VARIABLES LIKE 'bind_address';". Verifique as regras do firewall com sudo firewall-cmd --list-all. Confirme as permissões do usuário com SELECT Host, User FROM mysql.user;.
Sintoma: Performance degradada com muitas conexões simultâneas
Causa: o valor de max_connections está muito alto para a RAM disponível, causando swap, ou o thread_cache_size está baixo, forçando criação excessiva de threads.
Solução: reduza max_connections para um valor sustentável (RAM em MB / 2 como referência aproximada) e aumente thread_cache_size para 32 ou 64. Monitore com SHOW GLOBAL STATUS LIKE 'Max_used_connections'; para entender o pico real de conexões.
Sintoma: Slow query log não está sendo gerado
Causa: o diretório /var/log/mariadb/ não existe ou o usuário mysql não tem permissão de escrita nele.
Solução: crie o diretório e ajuste as permissões: sudo mkdir -p /var/log/mariadb && sudo chown mysql:mysql /var/log/mariadb. Reinicie o MariaDB e confirme com sudo mariadb -u root -e "SHOW VARIABLES LIKE 'slow_query_log%';".
Perguntas frequentes sobre MariaDB 11.4 no AlmaLinux 9
Qual a diferença entre MariaDB e MySQL no AlmaLinux 9?
MariaDB é um fork do MySQL com melhorias de performance, suporte a mais engines de armazenamento (como Aria e ColumnStore) e desenvolvimento totalmente open-source. No AlmaLinux 9, o MariaDB 11.4 está disponível nos repositórios oficiais e oferece compatibilidade com a maioria das aplicações que usam MySQL, mas com otimizações adicionais de cache e paralelismo de queries.
Como verificar se o MariaDB está rodando corretamente no AlmaLinux 9?
Execute o comando systemctl status mariadb para verificar o estado do daemon. O output deve mostrar active (running). Para confirmar a versão e conectividade, execute mariadb -u root -e "SELECT VERSION();" — o retorno deve exibir a versão instalada, como 11.4.x-MariaDB.
Como aumentar a performance do MariaDB sem trocar hardware?
Os ajustes mais eficazes são: aumentar o innodb_buffer_pool_size para 70-80% da RAM disponível, habilitar o sistema de cache do MariaDB 11.4, ajustar max_connections conforme a carga real e ativar o slow query log para identificar queries problemáticas. Essas configurações são feitas no arquivo /etc/my.cnf.d/mariadb-server.cnf e exigem reinicialização do serviço para entrar em vigor.
É seguro habilitar acesso remoto ao MariaDB no AlmaLinux 9?
Sim, desde que combinado com regras de firewall restritivas. Altere o bind-address para o IP do servidor, crie usuários com permissão apenas para IPs específicos e use senhas fortes. Nunca exponha a porta 3306 para 0.0.0.0 sem restrição de IP no firewall — isso representa risco crítico de segurança e pode comprometer todos os dados armazenados.
Como fazer backup automático do MariaDB no AlmaLinux 9?
Use o comando mariadb-dump combinado com cron para agendar backups. Crie um script que execute mariadb-dump --all-databases > /backup/mariadb_$(date +%F).sql e adicione uma entrada no crontab com crontab -e. Para backups incrementais de bancos maiores, considere o Mariabackup, ferramenta nativa do MariaDB 11.4 que permite restauração mais rápida sem bloquear o banco durante o processo.
Conclusão
- Instale sempre pelo repositório oficial do MariaDB Foundation para garantir a versão 11.4 LTS com todas as correções de segurança e melhorias de performance no AlmaLinux 9.
- Ajuste o
innodb_buffer_pool_sizepara 70-80% da RAM disponível e ative o slow query log imediatamente — essas duas ações têm o maior impacto na performance sem custo adicional de hardware. - Combine acesso remoto com regras de firewall por IP e backups diários automatizados para manter o banco de dados seguro e recuperável em qualquer cenário de falha.
Leia também
- Entenda o que é Swap no Linux: como funciona e quando usar
- Otimizar cache Redis para aplicações PHP no Ubuntu 22.04
- Otimizar MySQL: como reduzir uso de memória e acelerar consultas
Precisa de ajuda com MariaDB no seu servidor?
Configurar e otimizar o MariaDB 11.4 exige atenção a detalhes de sistema operacional, memória e segurança que variam conforme a carga da aplicação. Um VPS com recursos dedicados e suporte técnico especializado facilita esse processo significativamente.
Conheça os planos de VPS da AviraHost e comece com o ambiente ideal para seu banco de dados