anúncios

quarta-feira, 13 de novembro de 2024

Comparativo entre MySQL e MariaDB: Aprenda como usá-los em containers Docker com DBeaver

MySQL e MariaDB são dois dos bancos de dados relacionais mais populares no mercado, amplamente usados em sistemas de produção. Ambos são Sistemas de Gerenciamento de Banco de Dados (SGBDs) que suportam operações complexas e escaláveis, atendendo a várias necessidades de armazenamento e manipulação de dados. Porém, eles têm diferenças notáveis, desde seu licenciamento até características de desempenho e inovação.

Neste artigo, vamos explorar as diferenças entre MySQL e MariaDB, explicar suas origens e uso, e demonstrar como configurar ambos em containers Docker para facilitar o desenvolvimento e o gerenciamento de banco de dados. Também abordaremos como conectá-los ao DBeaver para visualização e administração.

O que é um banco de dados e um SGBD?

Um banco de dados é uma coleção organizada de dados que permite o armazenamento e a recuperação rápida de informações. Para gerenciar, organizar e manipular esses dados de forma eficiente, usamos um Sistema de Gerenciamento de Banco de Dados (SGBD), que é um software que interage com os dados e com o usuário, facilitando operações como consultas, atualizações e análises.

Existem dois tipos principais de banco de dados:

Relacionais: Organizam os dados em tabelas com colunas e linhas, como o MySQL, MariaDB, PostgreSQL, Oracle, MS SQL Server. São ideais para dados estruturados e complexos.

NoSQL: São não-relacionais e oferecem maior flexibilidade para trabalhar com dados sem estrutura rígida, como JSON ou dados hierárquicos. Exemplos incluem MongoDB, Cassandra.

MySQL vs MariaDB:

MySQL foi desenvolvido inicialmente pela empresa sueca MySQL AB e se tornou rapidamente popular por sua velocidade e simplicidade. Em 2008, foi adquirido pela Oracle, o que gerou preocupação na comunidade de código aberto sobre o futuro do projeto. Em resposta, Michael Widenius, um dos fundadores do MySQL, criou um fork chamado MariaDB, que manteve o foco em ser completamente livre e aberto, além de adicionar inovações.

Principais Diferenças entre MySQL e MariaDB

Característica MySQL MariaDB
Licenciamento GPL para Community Edition e versão comercial pela Oracle GPL, totalmente de código aberto
Mecanismo de Armazenamento InnoDB Aria (padrão) e InnoDB opcional
Replicação e Clustering Replicação Master-Slave, Master-Master Suporta Galera Cluster para replicação síncrona
Suporte JSON Suporte nativo Suporte nativo e melhorias de desempenho
Otimizações de Desempenho Foco em InnoDB e otimizações internas Aria, cache de subconsultas e consultas paralelas otimizadas
Recuperação de Crashes InnoDB com recuperação automática Aria com recuperação rápida e segura
Novos Recursos Suporte a JSON e novos tipos de dados Compatibilidade com PL/SQL e ColumnStore
Atualizações e Inovações Focada em estabilidade com novas funcionalidades controladas Atualizações frequentes com inovações rápidas

Instalando e executando o MySQL E MariaDB no Docker

Execute no terminal Linux (Debian e derivados), se caso ainda não tiver o Docker instalado.

$ sudo apt update

$ sudo apt install docker.io docker-compose

Caso você ainda usa Windows, então segue os procedimentos para poder conseguir reproduzir os procedimentos desse artigo no seu computador Janeleiro!

Habilitar o WSL2:

Abra o PowerShell como administrador e execute:

wsl --install

O comando acima instala automaticamente o WSL e a versão Ubuntu padrão. Caso queira instalar uma distribuição específica, como o Ubuntu LTS, ela pode ser encontrada na Microsoft Store.

Configurar o WSL2:

Verifique a versão do WSL para garantir que é o WSL2. Para isso, execute:

wsl --set-default-version 2

Isso configura o WSL para rodar como WSL2 por padrão, o que melhora a performance e compatibilidade com o Docker.

Instalar o Docker Desktop

Baixe e instale o Docker Desktop para Windows. Durante a instalação, marque a opção para Usar WSL2 em vez de Hyper-V.

Depois de instalado, o Docker Desktop detectará automaticamente o WSL2, permitindo executar containers diretamente no ambiente Ubuntu do WSL.

Com o Docker configurado, você poderá seguir os mesmos comandos descritos no artigo para executar containers de MySQL e MariaDB usando o terminal do Ubuntu no WSL2.

Para desenvolvedores que buscam um ambiente mais próximo dos servidores de produção e com maior controle do sistema, migrar para uma distribuição Linux pode ser uma excelente opção. Muitos profissionais encontram no Linux uma plataforma robusta e personalizável para desenvolvimento!

Configurando MySQL e MariaDB com Docker

O uso de Docker para configurar e executar MySQL e MariaDB em containers é uma prática cada vez mais comum. Docker simplifica o processo de instalação e oferece portabilidade, ideal para ambientes de desenvolvimento e testes.

Executando MySQL com Docker

Para criar um container Docker para MySQL, execute:

docker run --name mysql-docker -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=banco1 -p 3306:3306 -v mysql_data:/var/lib/mysql -d mysql:latest

Executando MariaDB com Docker

Para iniciar MariaDB em um container, use:

docker run --name mariadb-container -e MARIADB_ROOT_PASSWORD=secret -e MARIADB_DATABASE=banco2 -p 3307:3306 -v mariadb_data:/var/lib/mysql -d mariadb:latest

Conectando ao MySQL e MariaDB com DBeaver

DBeaver é uma ferramenta gráfica popular para gerenciar SGBDs, incluindo MySQL e MariaDB.

Execute no terminal Linux (Debian e derivados), se ainda não tiver instalado o DBeaver.

$ sudo apt install dbeaver-ce

Configurando conexão com MySQL no DBeaver

No DBeaver, vá em Database > New Database Connection.

Escolha MySQL na lista e configure:

Host: 127.0.0.1

Porta: 3306

Database: banco1

Username: root

Password: secret

Clique em Test Connection para verificar se a conexão com o container MySQL está funcionando.

Configurando conexão com MariaDB no DBeaver

No DBeaver, vá em Database > New Database Connection.

Escolha MariaDB e configure:

Host: 127.0.0.1

Porta: 3307

Database: banco2

Username: root

Password: secret

Após a configuração, você poderá gerenciar ambos os bancos de dados diretamente pelo DBeaver.

Clique em Test Connection para verificar a conexão com o container MariaDB.

Considerações finais

Tanto MySQL quanto MariaDB oferecem recursos poderosos e são amplamente utilizados em aplicações de produção. MariaDB é a escolha mais flexível e totalmente aberta, enquanto MySQL continua popular devido ao suporte e estabilidade oferecidos pela Oracle. A escolha entre MySQL e MariaDB depende das necessidades específicas do seu projeto, especialmente em relação ao licenciamento e aos recursos avançados. A configuração de ambos via Docker é simples e oferece um ambiente isolado para testes, desenvolvimento e operação.

Feito!

Nenhum comentário:

Postar um comentário