O MySQL é um dos sistemas de gerenciamento de banco de dados relacional (RDBMS) de código aberto mais comum, baseado na Structured Query Language (SQL), que é uma linguagem de programação usada para gerenciar dados mantidos em um banco de dados.
É rápido, simples de usar, mesmo para iniciantes entrando no desenvolvimento de back-end, e integrado a vários pacotes de pilha, como Xampp, Lampp e Wamp.
Neste post em particular, mostraremos como instalar o servidor MySQL em seu sistema Ubuntu. Informações adicionais incluem configurar as opções de segurança, ajustar os métodos de autenticação e criar um novo usuário. Nossa versão do Ubuntu de escolha neste tutorial é o Ubuntu 20.04 LTS, que é a versão mais recente ao escrever este artigo.
Instalando o MySQL no Ubuntu
Requisitos
Você precisará ter privilégios elevados (root) em seu sistema. Você pode fazer isso executando o comando abaixo.
sudo su
Procedimento
Ao escrever este post, a versão atual do MySQL Linux é a versão 5.7. Para iniciar a instalação, siga os passos abaixo:
Etapa 1) Certifique-se de que todos os pacotes e repositórios em seu sistema estejam atualizados. Você pode fazer isso executando o comando abaixo:
sudo apt update


Passo 2) Agora, vamos instalar o MySQL através do gerenciador de pacotes apt. Execute o comando abaixo.
sudo apt install mysql-server


Etapa 3) Após uma instalação bem-sucedida, o serviço mysql deve iniciar automaticamente. Você pode confirmar isso executando o comando abaixo:
sudo systemctl status mysql
Você deve obter uma saída semelhante à da imagem abaixo.


Em qualquer caso que o serviço não esteja rodando, execute o comando abaixo:
sudo /etc/init.d/mysql start
Verifique a instalação do MySQL (opcional)
Você pode verificar sua instalação executando o comando abaixo, que produzirá a versão e distribuição do MySQL instalada em seu sistema.
mysql --version


Proteja seu servidor MySQL
Agora que o servidor MySQL foi instalado com sucesso, você precisa definir alguns parâmetros para garantir a segurança do servidor e dos bancos de dados que você configurar no futuro.
Em outros casos, após a conclusão da instalação do pacote MySQL Server, o utilitário mysql-secure-installation será iniciado automaticamente. No entanto, se este não for o seu caso, execute o comando abaixo:
sudo mysql_secure_installation
Você verá um prompt perguntando se deseja VALIDAR O PLUGIN DE SENHA. Ele aumenta a segurança do servidor MySQL, verificando a força das senhas dos usuários, permitindo que os usuários definam apenas senhas fortes. Pressione Y para aceitar VALIDATION ou a tecla RETURN para pular.


Em seguida, você deve ver um prompt para definir a senha de root. Digite sua senha e aperte enter. Observe que, por motivos de segurança, o que você digitar no console não será exibido.


Em seguida, você deve ver um prompt perguntando se deseja remover todos os usuários anônimos, digite Y para YES. Para quaisquer outros prompts daqui, digite Y para YES.


Faça login como root e ajuste a autenticação do usuário
O servidor MySQL vem com um utilitário do lado do cliente que permite acessar e interagir com o banco de dados a partir do Terminal Linux.
Normalmente, após uma nova instalação do MySQL no Ubuntu sem realizar nenhuma configuração, os usuários que acessam o servidor são autenticados usando o plug-in do soquete de autenticação (auth_socket).
O uso de auth_socket impede que o servidor autentique um usuário usando uma senha. Não apenas levanta preocupações de segurança, mas também impede que os usuários acessem o banco de dados usando programas externos como o phpMyAdmin. Precisamos mudar o método de autenticação de auth_socket para o uso de mysql_native_password.
Para fazer isso, precisaremos abrir o console MySQL. Execute o seguinte comando no Terminal Linux.
sudo mysql


Agora, precisamos verificar o método de autenticação usado pelo banco de dados em diferentes usuários. Você pode fazer isso executando o comando abaixo.
SELECT user,authentication_string,plugin,host FROM mysql.user;


A partir da imagem acima, podemos confirmar que o usuário root realmente está autenticado usando o plugin auth_socket. Precisamos mudar para o uso de 'autenticação de senha' usando o comando 'ALTER USER' abaixo. Certifique-se de usar uma senha segura (deve ter mais de oito caracteres combinando números, strings e símbolos especiais), pois ela substituirá a senha que você definiu ao executar o comando ‘sudo mysql_secure_installation’ acima. Execute o comando abaixo.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';


Observe que o texto destacado na imagem acima é onde você digitará sua senha segura. Coloque-o entre tags simples. Agora, precisamos recarregar as tabelas de concessão e atualizar as alterações no servidor MySQL. Faça isso executando o comando abaixo.
FLUSH PRIVILEGES;


Uma vez feito, precisamos confirmar que o usuário root não usa mais auth_socket para autenticação. Faça isso executando o comando abaixo novamente.
SELECT user,authentication_string,plugin,host FROM mysql.user;


Na imagem acima, vemos que o método de autenticação root mudou de 'auth_socket' para 'password'.
Como alteramos o método de autenticação para root, não podemos usar o mesmo comando que usamos antes para abrir o console do MySQL. Ou seja, 'sudo mysql.' Precisaremos incluir os parâmetros de nome de usuário e senha, conforme mostrado abaixo.
mysql -u root -p
O '-u' indica o usuário, que é 'root' para o nosso caso e '-p' significa 'senha', que o servidor solicitará que você insira assim que pressionar a tecla Enter.


Criando um novo usuário
Depois que tudo estiver configurado, você poderá criar um novo usuário ao qual concederá os privilégios apropriados. No nosso caso aqui, vamos criar um usuário ‘tuts_fosslinux’ e atribuir direitos sobre todas as tabelas do banco de dados e permissão para alterar, remover e adicionar privilégios de usuário. Execute os comandos abaixo linha por linha.
CREATE USER 'tuts_fosslinux'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON *.* TO 'tuts_fosslinux'@'localhost' WITH GRANT OPTION;
O primeiro comando criará o novo usuário e o segundo atribuirá os privilégios necessários.


Agora podemos testar nosso novo usuário executando o comando abaixo.
mysql -u tuts_fosslinux -p


Instale o MySQL-Server no servidor Ubuntu
Instalar o servidor MySQL no servidor Ubuntu não é muito diferente das etapas descritas acima. No entanto, como um servidor é acessado remotamente, também precisamos habilitar o acesso remoto para nosso servidor.
Para instalar o banco de dados e configurar as opções de segurança, basta executar os comandos a seguir linha por linha no Terminal.
sudo apt update sudo apt install mysql-server sudo mysql_secure_installation
Após uma instalação bem-sucedida, precisaremos habilitar o acesso remoto. Logicamente, tudo o que precisamos fazer é abrir uma porta no firewall do servidor Ubuntu para que o servidor MySQL se comunique. Por padrão, o serviço MySQL é executado na porta 3306. Execute os comandos abaixo.
sudo ufw enable
sudo ufw allow mysql


Para aumentar a confiabilidade e acessibilidade de nossos bancos de dados MySQL, podemos configurar o serviço do servidor MySQL para começar a ser executado na inicialização. Para isso, execute o comando abaixo.
sudo systemctl enable mysql


Agora precisaremos configurar as interfaces do nosso servidor. Isso permitirá que o servidor escute interfaces acessíveis remotamente. Teremos que editar o arquivo ‘mysqld.cnf’. Execute os comandos abaixo.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf


Por padrão, o endereço de ligação é '127.0.0.1.' Adicione o endereço de ligação para sua interface de rede pública e outro para a interface de rede de serviço. Você pode configurar seu endereço de ligação como '0.0.0.0' para todos os endereços IP.
Conclusão
Espero que você tenha gostado deste tutorial sobre como configurar o servidor MySQL em seu sistema Ubuntu. Se você está apenas começando com o MySQL e tudo que você precisa é criar um banco de dados e um usuário simples, as etapas acima devem ser de grande ajuda. Se você achar este artigo engenhoso, sinta-se à vontade para compartilhar o link com um amigo.