Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Configurar MariaDB 11.4 no AlmaLinux 9: do padrão ao máximo

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:

  1. Instalar o MariaDB 11.4 via repositório oficial no AlmaLinux 9
  2. Iniciar o serviço e habilitar inicialização automática com systemctl
  3. Executar o script de segurança mariadb-secure-installation
  4. Ajustar o arquivo /etc/my.cnf.d/mariadb-server.cnf para performance
  5. Configurar firewall e acesso remoto com restrição de IP
  6. 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.

  1. 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
  1. 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!
  1. 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
  1. 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_size para 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

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

  • 0 Os usuários acharam isso útil
  • MariaDB, AlmaLinux, banco-de-dados, performance, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Otimizar cache Redis para aplicações PHP no Ubuntu 22.04

Para otimizar o cache Redis para aplicações PHP no Ubuntu 22.04, instale e configure o Redis,...

Configurar Alertas Automáticos com Zabbix no Ubuntu

Para configurar alertas automáticos com Zabbix no Ubuntu, instale o Zabbix Server, configure...

Otimizar MySQL: como reduzir uso de memória e acelerar consultas

Otimizar MySQL é o processo de ajustar configurações e consultas para reduzir o consumo de...

Entenda o que é Swap no Linux: como funciona e quando usar

Swap no Linux é um espaço em disco usado como extensão da memória RAM quando esta se esgota. O...

Guia Definitivo: Configurar Nginx como Proxy Reverso

Para configurar o Nginx como proxy reverso, instale o Nginx, crie um arquivo de configuração de...