Nesta atividade vais configurar um servidor MySQL real em ambiente virtualizado, simulando o que acontece num contexto profissional.
Em vez de trabalhares com uma instalação local no teu computador, vais instalar e configurar o MySQL numa máquina virtual com Ubuntu Server — um sistema operativo amplamente usado em servidores em todo o mundo.
No final, terás um servidor de base de dados a correr de forma independente, acessível remotamente a partir do teu computador Windows através do DBeaver, com utilizadores configurados com diferentes níveis de acesso, exatamente como num ambiente de produção real.
Descarrega o ficheiro OVA a partir deste link: https://we.tl/t-Xt7kdjf5SK0jNb9i
Um ficheiro OVA é uma máquina virtual pré-configurada comprimida de forma a ser rapidamente implementada
Abre o VirtualBox e vai a Ficheiro → Importar Aplicação
Seleciona o ficheiro OVA descarregado e clica em Próximo
Mantém as definições e clica em Importar — aguarda até concluir
Antes de arrancar, vai às Definições da VM:
Separador Rede → Placa 1 → muda para Placa em Ponte (Bridged Adapter)
Arranca a VM e faz login:
Utilizador: espan
Password: si2026
Atualiza o sistema:
sudo apt update && sudo apt upgrade -y
Confirma o IP da máquina — vais precisar dele para ligar com o DBeaver:
ip a
Procura a linha com inet que não seja 127.0.0.1. Anota esse endereço, por exemplo 10.99.253.XX.
sudo apt install mysql-server -y
Verifica que o MySQL está a correr:
sudo systemctl status mysql
Deves ver active (running) a verde. Prime Q para sair.
Executa o assistente de segurança:
sudo mysql_secure_installation
Responde assim:
Validate Password Plugin: N
New root password: Root1234
Remove anonymous users: Y
Disallow root login remotely: Y
Remove test database: Y
Reload privilege tables: Y
O mysql_secure_installation é um script que vem incluído com o MySQL e serve para aplicar um conjunto de configurações de segurança básicas logo após a instalação.
Por defeito, o MySQL é instalado com algumas configurações pouco seguras para facilitar a instalação — o script ajuda a corrigir isso. Concretamente faz:
Define uma password para o root — por defeito o root não tem password
Remove utilizadores anónimos — a instalação cria um utilizador sem nome que qualquer pessoa pode usar para ligar sem credenciais
Desativa o login remoto do root — impede que o utilizador root se ligue de outro computador, obrigando a que a administração seja feita localmente
Remove a base de dados test — uma base de dados vazia criada por defeito que qualquer utilizador pode aceder
Recarrega as tabelas de privilégios — aplica todas as alterações imediatamente
Entra no MySQL como root:
sudo mysql
Cria um utilizador que pode ligar de qualquer IP (executa cada linha de cada vez):
CREATE USER 'admindb'@'%' IDENTIFIED BY 'Admindb1234';
GRANT ALL PRIVILEGES ON *.* TO 'admindb'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Por defeito o MySQL só aceita ligações locais. Tens de editar o ficheiro de configuração:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Procura a linha:
bind-address = 127.0.0.1
Altera para:
bind-address = 0.0.0.0
Grava com Ctrl+O → Enter e sai com Ctrl+X.
Reinicia o MySQL:
sudo systemctl restart mysql
Confirma que está a ouvir em todas as interfaces:
sudo ss -tlnp | grep mysql
Deves ver 0.0.0.0:3306.
Agora no Windows (fora da VM):
Abre o DBeaver
Clica em Nova Conexão de Base de Dados
Escolhe MySQL
Preenche:
Host: o IP que anotaste (ex: 192.168.1.XX)
Port: 3306
Username: admindb
Password: Admindb1234
Clica no separador Driver Properties e configura:
allowPublicKeyRetrieval → true
useSSL → false
Clica em Testar Conexão — deve aparecer Conectado
Clica em OK
Se chegaste aqui com sucesso, tens um servidor MySQL real a correr e acessível remotamente ✅
Agora vais utilizar o servidor MySQL que configuraste anteriormente.
Vais importar uma base de dados através do DBeaver, criar utilizadores com diferentes níveis de acesso e fazer um backup via linha de comandos.
No DBeaver, clica com o botão direito na ligação → Criar novo Banco de Dados
Dá o nome escola e clica em OK
Clica com o botão direito na base de dados escola → Editor SQL → Novo Script SQL
Seleciona o ficheiro escola.sql fornecido pelo professor juntamente com o ficheiro .OVA
Clica em Executar Script SQL e aguarda a conclusão
Clica com o botão direito na ligação → Atualizar — as tabelas devem aparecer dentro da base de dados escola
Entra no MySQL pela VM usando:
sudo mysql
Cria os seguintes utilizadores usando o que já sabes sobre CREATE USERS, GRANT e REVOKE:
Utilizador auditor
Password: Auditor1234
Pode ligar de qualquer IP
Só pode fazer SELECT em qualquer tabela da base de dados escola
Utilizador recepcao
Password: Recepcao1234
Pode ligar de qualquer IP
Só pode fazer SELECT e INSERT na tabela alunos
Utilizador estagiario
Password: Estagiario1234
Pode ligar de qualquer IP
Pode fazer SELECT em qualquer tabela da base de dados escola
Exceto na tabela notas — sem qualquer acesso
Para cada utilizador, cria uma nova ligação no DBeaver e testa as queries.
Regista os resultados e mostra ao professor! ✅
Na VM, faz o backup da base de dados para um ficheiro:
mysqldump -u admindb -p escola > /home/espan/backup_escola.sql
Introduz a password quando pedido (Admindb1234).
Confirma que o ficheiro foi criado:
ls /home/espan/backup_escola.sql
Cria um utilizador chamado relatorios que:
Só pode fazer SELECT
Só tem acesso à base de dados escola
Só pode ligar a partir do IP do teu PC (substitui % pelo teu IP real)
Testa a ligação no DBeaver e confirma que funciona.