MySQL em máquina virtual

1️⃣ Configurando a rede da máquina virtual

Após criarmos a nossa máquina virtual, precisamos conferir qual é o tipo de conexão usado. Precisamos escolher a opção placa em modo bridge. Agora, descubra o endereço IP da máquina virtual:

ip a

2️⃣ Instalação do SSH

Por padrão, utilizamos o terminal do Ubuntu rodando direto na máquina virtual para executar as operações. No entanto, essa abordagem é bastante limitante. Para facilitar, podemos usar o terminal do Windows para controlar a máquina virtual. No meu caso, o OpenSSH não foi instalado automaticamente.

# Máquina Linux
sudo apt install openssh-server

Conectando a máquina hospedeira à máquina virtual

No terminal do Windows, execute:

ssh nomedousuario@ipdamaquinavirtual

4️⃣ Instalando o MySQL

A partir daí, vamos instalar na máquina virtual o servidor MySQL

sudo apt install mysql-server

Para confirmar que deu tudo certo na instalação, vamos acessar o servidor MySQL:

sudo mysql -u root -p

Acessando o servidor MySQL, vamos alterar algumas propriedades da conta root, para que ela seja acessível a partir de outros dispositivos:

SELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'root';
UPDATE mysql.user SET host = '%' WHERE user = 'root' AND host = 'localhost';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Após a alteração dos privilégios, precisamos também alterar o arquivo de configuração do servidor, para que ele receba requisições externas.

# Máquina virtual
cd /etc/mysql
ls -c

Após visualizarmos a lista de arquivos, precisamos acessar a pasta mysql.conf.d e abri-lo para edição.

cd mysql.conf.d
sudo nano mysqld.cnf

No arquivo, procuramos pela linha que contém:

bind-address = 127.0.0.1

e trocamos o valor para

bind-address = 0.0.0.0

Finalmente, reiniciamos o servidor MySQL

sudo service mysql restart

5️⃣ Conectando ao MySQL pelo Windows

No Windows, ao executarmos direto a seguinte operação, encontraremos alguns erros:

# Windows
mysql -u root -p -h 192.168.100.139
Enter password:

Liberando o firewall

sudo ufw allow 3306