Configurar um servidor de banco de dados seguro no Ubuntu é uma base fundamental para criar aplicações escaláveis e confiáveis. Quer você esteja implantando aplicações web dinâmicas ou gerenciando cargas de trabalho empresariais complexas, escolher a solução de banco de dados certa é essencial. MySQL e MariaDB são dois dos sistemas de banco de dados de código aberto mais populares, conhecidos por seu desempenho, flexibilidade e confiabilidade.
Neste guia, orientaremos você no processo de instalação, configuração e proteção do MySQL e do MariaDB em um servidor Ubuntu. Além disso, compararemos seus recursos para ajudá-lo a determinar a melhor opção para seu caso de uso específico. Com essa abordagem passo a passo, você estará preparado para configurar um ambiente de banco de dados seguro e robusto para suas aplicações.
Artigos anteriores:
01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud
02. Como configurar seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud
03. Dominando a linha de comando do Linux para Ubuntu Server – SysOSX: AI & Cloud
04. Gerenciamento de usuários e permissões no Ubuntu Server: guia completo – SysOSX: AI & Cloud
05. Noções básicas de rede para Ubuntu Server: guia completo – SysOSX: AI & Cloud
06. Instalação e gerenciamento de software no Ubuntu Server: guia completo – SysOSX: AI & Cloud
07.Aplicação de patches e atualização do Ubuntu Server: guia completo – SysOSX: AI & Cloud
08. Protegendo seu servidor Ubuntu: etapas práticas de reforço e proteção – SysOSX: AI & Cloud
09. Auditoria e registro de logs no servidor Ubuntu
10. Ferramentas de monitoramento de sistema para Ubuntu Server: guia completo – SysOSX: AI & Cloud
12. Auditoria e conformidade para Ubuntu Server: melhores práticas – SysOSX: AI & Cloud
14. Hospedar vários sites em um único servidor Ubuntu: dicas úteis – SysOSX: AI & Cloud
15. Gerenciamento de armazenamento e discos no Ubuntu Server: guia simples – SysOSX: AI & Cloud
Pré-requisitos
Antes de começar, verifique o seguinte:
- Ubuntu Server: Uma instância do Ubuntu em execução (recomenda-se a versão 20.04 ou posterior).
- Acesso administrativo: Você precisará de
sudoprivilégios para instalar e configurar o servidor de banco de dados. - Conexão com a internet: Necessária para baixar pacotes e atualizações.
MySQL vs. MariaDB: principais diferenças
Embora MySQL e MariaDB compartilhem as mesmas raízes, eles divergiram nos últimos anos para oferecer recursos distintos. Esta comparação ajudará você a escolher o servidor de banco de dados certo para suas necessidades:
| Recurso | MySQL | MariaDB |
|---|---|---|
| Licença | Licença dupla (GPL e proprietária) | Código aberto (GPL) |
| Desempenho | Otimizado para cargas de trabalho com muitas leituras | Desempenho melhorado para cargas de trabalho de leitura e escrita |
| Mecanismo de armazenamento padrão | InnoDB | Aria (alternativa ao InnoDB) |
| Recursos | Recursos empresariais disponíveis nas versões pagas | Muitos recursos (por exemplo, pool de threads, funções JSON) são de código aberto |
| Compatibilidade | Amplamente usado e suportado pelas principais plataformas | Compatível com o MySQL, mas pode não suportar alguns recursos proprietários do MySQL |
| Replicação | Replicação tradicional | Replicação aprimorada com suporte ao Galera Cluster |
| Suporte da comunidade | Grande comunidade e opções de suporte empresarial | Forte suporte da comunidade de código aberto |
Recomendação:
- Escolha MySQL se você precisa de recursos de nível empresarial e compatibilidade com ferramentas proprietárias.
- Opte por MariaDB se você prefere software de código aberto com recursos e desempenho aprimorados.
Instalação do MySQL ou MariaDB
Etapa 1: Atualizar o repositório de pacotes
Atualize seu sistema para garantir que você esteja trabalhando com as versões mais recentes dos pacotes:
sudo apt update && sudo apt upgrade
Etapa 2: Instalar o MySQL ou MariaDB
Você pode instalar o MySQL ou o MariaDB, dependendo da sua preferência.
Instalação do MySQL:
sudo apt install mysql-server
Instalação do MariaDB:
sudo apt install mariadb-server
Etapa 3: Verificar a instalação
Após a instalação, verifique se o servidor de banco de dados está em execução:
Para o MySQL:
sudo systemctl status mysql
Para o MariaDB:
sudo systemctl status mariadb
Configuração do servidor de banco de dados
Etapa 1: Configuração básica
Edite o arquivo de configuração para otimizar o desempenho e a segurança.
Para o MySQL:
sudo nano /etc/mysql/my.cnf
Para o MariaDB:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Principais configurações a ajustar:
bind-address: Defina-o como0.0.0.0se você quiser acesso remoto.max_connections: Aumente este valor para aplicações de alto tráfego.
Após fazer as alterações, reinicie o serviço:
sudo systemctl restart mysql # For MySQL
sudo systemctl restart mariadb # For MariaDB
Etapa 2: Testar o servidor de banco de dados
Faça login no servidor de banco de dados para garantir que ele esteja funcionando:
mysql -u root -p
Proteção do seu servidor de banco de dados
Etapa 1: Executar o script de segurança
Use o script de segurança integrado para reforçar seu servidor de banco de dados.
sudo mysql_secure_installation
Siga as instruções para:
- Definir uma senha forte para o root.
- Remover usuários anônimos.
- Desabilitar o login remoto do root.
- Remover bancos de dados de teste.
Etapa 2: Configurar regras de firewall
Restrinja o acesso ao servidor de banco de dados usando ufw:
sudo ufw allow from <your-ip-address> to any port 3306
Substitua <your-ip-address> pelo endereço IP que requer acesso.
Etapa 3: Habilitar SSL/TLS
Para maior segurança, habilite as conexões SSL/TLS. Consulte documentação do MySQL ou documentação do MariaDB para obter instruções de configuração.
(Exemplo para o MySQL)
- Gere os certificados:
sudo mysql_ssl_rsa_setup --uid=mysql
- Habilite na configuração:
[mysqld]
ssl-ca = /var/lib/mysql/ca.pem
ssl-cert = /var/lib/mysql/server-cert.pem
ssl-key = /var/lib/mysql/server-key.pem
Etapa 4: Instalar o Fail2Ban (opcional)
sudo apt install fail2ban
Configure as regras de jail para MySQL/MariaDB em /etc/fail2ban/jail.local.
Gerenciamento do seu servidor de banco de dados
Etapa 1: Criar um banco de dados
Crie um banco de dados para sua aplicação:
CREATE DATABASE my_application_db;
Etapa 2: Criar um usuário e conceder privilégios
Crie um usuário e atribua privilégios:
CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON my_application_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
Etapa 3: Monitorar o desempenho
# Analyze slow queries
sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log
# Use MySQLTuner
wget https://mysqltuner.pl -O mysqltuner.pl
perl mysqltuner.pl
Etapa 4: Backup e restauração
Backups regulares são essenciais para a segurança dos dados.
Backup:
mysqldump -u root -p my_application_db > my_application_db.sql
Restauração:
mysql -u root -p my_application_db < my_application_db.sql
Backups automatizados (tarefa cron)
# Daily backup at 2 AM
0 2 * * * /usr/bin/mysqldump -u root -p PASSWORD app_db > /backups/app_db_$(date +\%F).sql
Conclusão
Tanto o MySQL quanto o MariaDB são excelentes opções para configurar um servidor de banco de dados no Ubuntu. Enquanto o MySQL é conhecido por seus recursos de nível empresarial, o MariaDB se destaca por sua abordagem de código aberto e melhorias de desempenho. Ao seguir este guia, você poderá instalar, configurar, proteger e gerenciar seu servidor de banco de dados com eficácia.
Em breve:
Em nosso próximo guia, “Dominando o LVM no Ubuntu: armazenamento flexível para servidores de banco de dados”, você aprenderá a:
- Criar e gerenciar volumes lógicos para armazenamento dinâmico de banco de dados.
- Redimensionar discos sem tempo de inatividade.
- Implementar snapshots para backups consistentes.
Não perca: siga nosso blog para se manter atualizado!