Compatível com Ubuntu 20.04, 22.04 e 24.04
1 Atualizar o sistema #
Antes de qualquer instalação, atualize os pacotes:
sudo apt update && sudo apt upgrade -y

Instalar o MySQL Server #
Instale o MySQL diretamente do repositório oficial do Ubuntu:
sudo apt install mysql-server -y



Durante a instalação:
- Nenhuma senha é solicitada (padrão nas versões mais novas).
3 Verificar se o MySQL está rodando #
Após a instalação, confira o status do serviço:
sudo systemctl status mysql
Se estiver tudo certo, você verá algo como:
Active: active (running)

Caso não esteja rodando:
sudo systemctl start mysql
sudo systemctl enable mysql
4 Acessar o MySQL (primeiro login) #
Por padrão, o MySQL usa auth_socket, ou seja, o usuário root entra via sistema operacional:
sudo mysql
Você deve entrar diretamente no prompt do MySQL:
mysql>
5 Executar o script de segurança (OBRIGATÓRIO) #
Esse passo fecha brechas básicas de segurança:
sudo mysql_secure_installation
Durante o processo:
Validate password component? N (Opcional)
Set root password? Y
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database? Y
Reload privilege tables? Y
6 Criar um banco de dados #
Entre no MySQL novamente:
sudo mysql
Crie o banco:
CREATE DATABASE meu_banco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
7 Criar um usuário MySQL (RECOMENDADO) #
⚠️ Nunca use o usuário root em aplicações⚠️
CREATE USER ‘meu_usuario’@’localhost’ IDENTIFIED BY ‘SenhaForteAqui’;
Conceder permissões ao banco:
GRANT ALL PRIVILEGES ON meu_banco.* TO ‘meu_usuario’@’localhost’;
FLUSH PRIVILEGES;
Sair do MySQL:
EXIT;
8 Testar login com o novo usuário #
mysql -u meu_usuario -p
Digite a senha definida.
9 Liberar acesso remoto (OPCIONAL) #
Por padrão, o MySQL só aceita conexões locais.
9.1 Alterar bind-address #
Edite o arquivo:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Procure por:
bind-address = 127.0.0.1
Troque para:
bind-address = 0.0.0.0
Salve (CTRL + O, ENTER) e saia (CTRL + X).

9.2 Criar usuário remoto #
Entre no MySQL:
sudo mysql
CREATE USER ‘meu_usuario’@’%’ IDENTIFIED BY ‘SenhaForteAqui’;
GRANT ALL PRIVILEGES ON meu_banco.* TO ‘meu_usuario’@’%’;
FLUSH PRIVILEGES;
9.3 Reiniciar o MySQL #
sudo systemctl restart mysql
10 Liberar porta no firewall (se usar UFW) #
sudo ufw allow 3306
sudo ufw reload
⚠️ Nunca exponha MySQL publicamente sem firewall + IP fixo permitido
11 Comandos úteis de suporte #
Ver portas abertas: #
ss -tulnp | grep mysql
Ver versão: #
mysql –version
Reiniciar serviço: #
sudo systemctl restart mysql
Logs: #
sudo journalctl -u mysql –no-pager | tail -n 50
✅ Checklist final #
✔ MySQL instalado
✔ Serviço ativo
✔ Banco criado
✔ Usuário separado
✔ Segurança básica aplicada
✔ (Opcional) Acesso remoto configurado