Como instalar o MariaDB no Ubuntu (20.04 / 22.04 / 24.04) – Guia completo de configuração e segurança

目次

Forma mais rápida de instalar MariaDB no Ubuntu (suporte a 20.04 / 22.04 / 24.04)

Se você deseja começar a usar o MariaDB no Ubuntu imediatamente, basta seguir os passos abaixo para concluir a instalação e a verificação de inicialização. A menos que tenha um motivo específico, instalar a partir do repositório padrão do Ubuntu é a opção mais segura e estável.

① Atualizar informações dos pacotes

sudo apt update
sudo apt upgrade -y

② Instalar MariaDB

sudo apt install -y mariadb-server mariadb-client

Nenhuma configuração especial é necessária durante a instalação. Após a conclusão, o serviço MariaDB será iniciado automaticamente.

③ Verificar se o MariaDB está em execução

sudo systemctl status mariadb

Se active (running) for exibido, o MariaDB está funcionando corretamente.

④ Habilitar início automático (geralmente não é necessário, mas recomendado confirmar)

sudo systemctl enable mariadb

⑤ Conectar ao MariaDB e verificar operação

sudo mysql

Se você vir o prompt a seguir, a instalação foi bem‑sucedida:

MariaDB [(none)]>

Para sair, digite exit;.

Inicialização de segurança obrigatória após a instalação

Imediatamente após a instalação, o MariaDB possui apenas configurações de segurança mínimas aplicadas. Certifique‑se de executar o comando a seguir:

sudo mysql_secure_installation

Geralmente, as respostas abaixo são recomendadas:

  • Remover usuários anônimos → Y
  • Negar login root remotamente → Y
  • Remover banco de dados de teste → Y
  • Recarregar tabelas de privilégios → Y

Isso conclui a configuração de um ambiente MariaDB seguro no Ubuntu.

Versão do MariaDB instalada por versão do Ubuntu

  • Ubuntu 20.04 → MariaDB série 10.3
  • Ubuntu 22.04 → MariaDB série 10.6
  • Ubuntu 24.04 → MariaDB série 10.11 (LTS)

Para a maioria dos usuários, a versão padrão do Ubuntu é suficiente. Só considere o repositório oficial se precisar dos recursos mais recentes.

Verificações rápidas se a instalação falhar ou o serviço não iniciar

  • Verificar erros com sudo systemctl status mariadb
  • Verificar logs detalhados com sudo journalctl -xe
  • Verificar espaço em disco com df -h

Na maioria dos casos, o problema é falta de espaço em disco ou um erro de digitação em um arquivo de configuração.

Escolhendo a versão correta do MariaDB para sua versão do Ubuntu

Ao usar o MariaDB no Ubuntu, a opção mais segura na maioria dos casos é a versão do repositório padrão. Atualizações de segurança e compatibilidade de dependências são mantidas automaticamente, tornando‑a ideal para iniciantes e usuários intermediários.

Versão do repositório padrão do Ubuntu (Recomendado)

  • Ubuntu 20.04 → MariaDB série 10.3
  • Ubuntu 22.04 → MariaDB série 10.6
  • Ubuntu 24.04 → MariaDB série 10.11 (LTS)

A menos que tenha um requisito específico, essas versões são totalmente práticas para uso em produção.

Se você precisar da versão mais recente (adicione o repositório oficial do MariaDB)

Se precisar dos recursos mais recentes, pode adicionar o repositório oficial do MariaDB. Como apt-key está obsoleto, este método usa a opção signed-by.

① Salvar a chave GPG

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
  | sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg

② Verificar o codinome do seu Ubuntu

lsb_release -cs

Exemplos:

  • 20.04 → focal
  • 22.04 → jammy
  • 24.04 → noble

③ Adicionar o repositório oficial (Exemplo: série 10.11)

echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list

④ Atualizar pacotes e instalar

sudo apt update
sudo apt install mariadb-server mariadb-client

Observações ao usar o repositório oficial

  • Você pode usar recursos mais recentes que a versão padrão do Ubuntu
  • Existe risco futuro de conflitos de dependências
  • Testes rigorosos são necessários para servidores de produção

Para produção, decida claramente se prioriza estabilidade ou os recursos mais recentes.

Como Verificar a Versão do MariaDB Atualmente Instalada

mysql --version

Exemplo:

mysql  Ver 15.1 Distrib 10.6.16-MariaDB

Ao confirmar explicitamente a versão, a solução de problemas e o trabalho de migração se tornam muito mais fáceis.

Guia Completo para Configuração Inicial de Segurança do MariaDB (mysql_secure_installation)

Imediatamente após instalar o MariaDB, apenas configurações de segurança mínimas são aplicadas. Para operar com segurança, certifique‑se de executar o comando a seguir:

sudo mysql_secure_installation

Ao ser executado, várias solicitações aparecerão. Na maioria dos casos, as respostas abaixo são recomendadas.

Respostas Recomendadas

  • Enter current password for root: → Pressione Enter (não definido na primeira execução)
  • Switch to unix_socket authentication? → Y (Recomendado no Ubuntu)
  • Change the root password? → N (Se estiver usando autenticação unix_socket)
  • Remove anonymous users? → Y
  • Disallow root login remotely? → Y
  • Remove test database and access to it? → Y
  • Reload privilege tables now? → Y

Isso completa a configuração básica de segurança.

Por que Você Não Pode Entrar como root (Erro Access Denied)

No Ubuntu, o usuário root usa autenticação unix_socket por padrão. Portanto, o login padrão baseado em senha não funcionará.

Exemplo de Sintoma

mysql -u root -p

Access denied for user 'root'@'localhost'

Método Correto de Login (Padrão do Ubuntu)

sudo mysql

Este é o método mais seguro e recomendado.

Como Alterar root para Autenticação por Senha (Somente se Necessário)

Altere o método de autenticação apenas se precisar conectar como root a partir de ferramentas ou aplicações externas.

① Conectar ao MariaDB

sudo mysql

② Alterar o Plugin de Autenticação

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';

FLUSH PRIVILEGES;

③ Confirmar a Alteração

SELECT user, host, plugin FROM mysql.user;

Se mysql_native_password for exibido, a alteração foi bem‑sucedida.

Como Verificar o Método de Autenticação Atual

sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"

Principais métodos de autenticação:

  • unix_socket → Padrão do Ubuntu, seguro
  • mysql_native_password → Autenticação baseada em senha

A menos que haja um motivo específico, é mais seguro manter o root usando autenticação unix_socket.

Erros Comuns e Soluções

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

  • Causa: Tentativa de login baseado em senha
  • Solução: Faça login usando sudo mysql

mysql_secure_installation Não Encontrado

  • Verifique com which mysql_secure_installation
  • Se não estiver instalado, execute sudo apt install mariadb-server

Definir Codificação de Caracteres para utf8mb4 (Prevenir Texto Corrompido)

Para lidar com segurança textos multilíngues e emojis no MariaDB, recomenda‑se usar utf8mb4. Sem essa configuração, você pode encontrar problemas de codificação ou perda de dados.

① Editar o Arquivo de Configuração

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Adicione ou modifique as linhas a seguir na seção [mysqld]:

[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_general_ci

② Reiniciar o MariaDB

sudo systemctl restart mariadb

③ Verificar as Configurações

sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"

Se utf8mb4 for exibido, a configuração foi bem‑sucedida.

Especificar utf8mb4 ao Criar um Banco de Dados (Recomendado)

Se quiser definir explicitamente o conjunto de caracteres independentemente das configurações globais, especifique‑o ao criar o banco de dados.

CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

Todas as tabelas criadas dentro desse banco de dados herdarão utf8mb4.

Criar um Usuário de Aplicação e Conceder Permissões

Em ambientes de produção, nunca use o usuário root para conexões de aplicação. Crie um usuário dedicado e conceda apenas os privilégios mínimos necessários.

① Fazer login no MariaDB

sudo mysql

② Criar um usuário (Conexão local)

CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';

③ Conceder privilégios ao banco de dados

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';

FLUSH PRIVILEGES;

Criar um usuário de acesso remoto (Somente se necessário)

Configure isso apenas se precisar se conectar a partir de um servidor externo ou ambiente de nuvem.

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Observação: O curinga “%” permite conexões de qualquer host. Em ambientes de produção, especificar um endereço IP específico é mais seguro.

Como verificar usuários e privilégios atuais

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'app_user'@'localhost';

Erros comuns de permissão e soluções

Acesso negado para o usuário ‘app_user’

  • Especificação de host incorreta (diferença entre localhost e %)
  • FLUSH PRIVILEGES não foi executado
  • Nome do banco de dados incorreto durante a conexão

Banco de dados desconhecido

  • Erro de digitação no nome do banco de dados
  • Nenhum privilégio concedido para o banco de dados alvo

Como permitir conexões remotas no MariaDB (Correção quando o acesso externo falha)

Por padrão, o MariaDB permite apenas conexões locais. Se precisar se conectar a partir de um servidor externo ou ambiente de nuvem, configure as seguintes opções.

① Alterar bind‑address

Edite o arquivo de configuração:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Encontre a linha a seguir:

bind-address = 127.0.0.1

Para permitir conexões externas, altere para:

bind-address = 0.0.0.0

Após salvar, reinicie o MariaDB:

sudo systemctl restart mariadb

② Abrir a porta 3306 no firewall

Se estiver usando UFW no Ubuntu:

sudo ufw allow 3306
sudo ufw reload

Para maior segurança, especifique o endereço IP de origem:

sudo ufw allow from 192.168.1.10 to any port 3306

③ Criar um usuário de acesso remoto

CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';

GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';

FLUSH PRIVILEGES;

Para maior segurança:

CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';

Lista de verificação se não conseguir conectar externamente

1. O MariaDB está em execução?

sudo systemctl status mariadb

2. A porta 3306 está ouvindo?

sudo ss -tulnp | grep 3306

Se mostrar 0.0.0.0:3306, está ouvindo corretamente em todas as interfaces.

3. Se estiver usando um ambiente de nuvem (AWS / GCP / VPS)

  • Certifique-se de que a porta 3306 está aberta no grupo de segurança
  • Confirme que nenhum firewall externo está bloqueando a conexão

4. Causas por mensagem de erro

Não é possível conectar ao servidor MySQL

  • Porta está fechada
  • bind‑address não alterado
  • Firewall bloqueando a conexão

Acesso negado para o usuário

  • Especificação de host do usuário incorreta
  • Senha incorreta
  • Privilégios não concedidos

Conexão expirou

  • Configurações de segurança do lado da nuvem
  • Problemas de roteamento de rede

Observações importantes de segurança

  • Evite usar “%” em ambientes de produção
  • Use acesso VPN sempre que possível
  • Considere habilitar conexões SSL/TLS
  • Nunca permita login remoto como root

Solução de problemas quando o MariaDB falha ao iniciar (erro de falha)

① Verificar status do serviço

sudo systemctl status mariadb

② Verificar logs detalhados

sudo journalctl -xe
sudo cat /var/log/mysql/error.log

③ Causas comuns

  • Erros de sintaxe no arquivo de configuração
  • Espaço em disco insuficiente
  • Conflito de porta (MySQL já em execução)

④ Verificar espaço em disco

df -h

Resumo das causas do erro de acesso negado

  • Senha incorreta
  • Especificação de host incorreta (diferença entre localhost e %)
  • FLUSH PRIVILEGES não executado
  • Tentando login padrão para root (requer sudo mysql )

Melhorias básicas de desempenho (Para iniciantes)

Advanced tuning is not required, but at minimum, confirm the following settings.

① Enable Slow Query Log

Add the following to 50-server.cnf:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

Restart MariaDB:

sudo systemctl restart mariadb

② Check Index Usage

Slow queries may be missing proper indexes.

EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';

③ Check Server Resources

top
htop

If memory is insufficient, consider upgrading your server plan.

Frequently Asked Questions (FAQ)

How can I lock the MariaDB version on Ubuntu 22.04?

Use apt-mark hold mariadb-server.

How do I reset the root password if I forgot it?

You can reset it by starting in safe mode and reconfiguring the password. See our dedicated guide for detailed steps.

How do I change the MariaDB port number?

Modify 50-server.cnf to something like port = 3307, then restart the service.

Conclusion: Using MariaDB Safely on Ubuntu

  • Using the default repository version is the safest option
  • Always run mysql_secure_installation
  • Never use root for application connections
  • Enable remote access only when necessary
  • When troubleshooting, checking logs is the top priority

By following these steps, you can build a secure and production-ready MariaDB environment on Ubuntu.