- 1 Forma mais rápida de instalar MariaDB no Ubuntu (suporte a 20.04 / 22.04 / 24.04)
- 1.1 ① Atualizar informações dos pacotes
- 1.2 ② Instalar MariaDB
- 1.3 ③ Verificar se o MariaDB está em execução
- 1.4 ④ Habilitar início automático (geralmente não é necessário, mas recomendado confirmar)
- 1.5 ⑤ Conectar ao MariaDB e verificar operação
- 1.6 Inicialização de segurança obrigatória após a instalação
- 1.7 Versão do MariaDB instalada por versão do Ubuntu
- 1.8 Verificações rápidas se a instalação falhar ou o serviço não iniciar
- 2 Escolhendo a versão correta do MariaDB para sua versão do Ubuntu
- 3 Se você precisar da versão mais recente (adicione o repositório oficial do MariaDB)
- 4 Como Verificar a Versão do MariaDB Atualmente Instalada
- 5 Guia Completo para Configuração Inicial de Segurança do MariaDB (mysql_secure_installation)
- 6 Por que Você Não Pode Entrar como root (Erro Access Denied)
- 7 Como Alterar root para Autenticação por Senha (Somente se Necessário)
- 8 Como Verificar o Método de Autenticação Atual
- 9 Erros Comuns e Soluções
- 10 Definir Codificação de Caracteres para utf8mb4 (Prevenir Texto Corrompido)
- 11 Especificar utf8mb4 ao Criar um Banco de Dados (Recomendado)
- 12 Criar um Usuário de Aplicação e Conceder Permissões
- 13 Criar um usuário de acesso remoto (Somente se necessário)
- 14 Como verificar usuários e privilégios atuais
- 15 Erros comuns de permissão e soluções
- 16 Como permitir conexões remotas no MariaDB (Correção quando o acesso externo falha)
- 17 Lista de verificação se não conseguir conectar externamente
- 18 Observações importantes de segurança
- 19 Solução de problemas quando o MariaDB falha ao iniciar (erro de falha)
- 20 Resumo das causas do erro de acesso negado
- 21 Melhorias básicas de desempenho (Para iniciantes)
- 22 Frequently Asked Questions (FAQ)
- 23 Conclusion: Using MariaDB Safely on Ubuntu
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.


