Tutorial

Como instalar o MySQL no Ubuntu 20.04 [Início rápido]

UbuntuMySQLQuickstartDatabasesUbuntu 20.04

Introdução

O MySQL é um sistema de gerenciamento de banco de dados de código aberto, que é geralmente instalado como parte da pilha popular LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Ele implementa o modelo relacional e utiliza a linguagem SQL (Structured Query Language) para gerenciar seus dados.

Este tutorial de início rápido explicará como instalar a versão 8 do MySQL em um servidor Ubuntu 20.04.

Pré-requisitos

Para seguir este tutorial, você vai precisar do seguinte:

Passo 1 — Instalando o MySQL

Para instalar o MySQL, primeiro atualize o índice do pacote de seu servidor, se ainda não o tiver feito:

  • sudo apt update

Depois disso, instale o pacote mysql-server:

  • sudo apt install mysql-server

Passo 2 — Configurando o MySQL

Execute o script de segurança incluído do MySQL com o sudo:

  • sudo mysql_secure_installation

Isso levará você através de uma série de prompts onde é possível fazer algumas alterações nas opções de segurança de sua instalação do MySQL. O primeiro prompt perguntará se você gostaria de definir o plug-in de validar senha, que pode ser usado para testar a força de sua senha do MySQL.

Se você escolher configurar o plug-in de validar senha, o script pedirá que escolha um nível de validação de senha, com o nível mais fraco sendo 0 e o mais forte sendo 2:

Output
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

O próximo prompt será para digitar e confirmar uma senha para o usuário root do MySQL:

Output
Please set the password for root here. New password: Re-enter new password:

Então, o script perguntará se você deseja continuar com a senha que acabou de digitar, ou se prefere digitar uma nova. Se estiver satisfeito com sua senha, digite Y para continuar o script:

Output
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

A partir daí, pressione Y e, depois, ENTER para aceitar as configurações padrão para todas as perguntas subsequentes.

Passo 3 — (Opcional) Ajustando a autenticação e os privilégios do usuário

Para usar uma senha para se conectar ao MySQL como root, será necessário mudar o método do plug-in de autenticação padrão auth_socket para outro, como o caching_sha2_password ou o mysql_native_password. Para fazer isso, abra o prompt do MySQL do seu terminal:

  • sudo mysql

A partir daí, execute uma instrução ALTER USER para alterar qual plug-in de autenticação ele utiliza e defina uma nova senha. Certifique-se de alterar a password para uma senha forte de sua escolha. Sabia que este comando mudará a senha root que você definiu no Passo 2:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Nota: o caching_sha2_password é o plug-in de autenticação preferencial do MySQL, pois ele fornece uma criptografia de senha mais segura do que o plug-in mais antigo (mas ainda assim bastante utilizado), o mysql_native_password.

No entanto, muitos aplicativos PHP (phpMyAdmin, por exemplo) não funcionam de maneira confiável com o caching_sha2_password. Se planeja utilizar este banco de dados com um aplicativo PHP você pode, em vez disso, querer definir o root para autenticar-se com o mysql_native_password:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Então, execute o comando FLUSH o qual diz para o servidor recarregar as tabelas de permissões e colocar as suas alterações em vigor:

  • FLUSH PRIVILEGES;

Verifique novamente os métodos de autenticação utilizados pelos seus usuários para confirmar que o raiz já não autentica utilizando o plug-in auth_socket:

  • SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

Assim que confirmar isso no seu servidor, saia do shell MySQL:

  • exit

De maneira alternativa, em vez do root, você poderia se conectar ao MySQL com um usuário dedicado. Para criar esse usuário, abra o shell do MySQL novamente:

  • sudo mysql

Nota: se tiver a autenticação por senha habilitada para root (como descrito nos parágrafos anteriores), será necessário executar o seguinte:

  • mysql -u root -p

A partir daí, crie um novo usuário e dê a ele uma senha forte:

  • CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

Então, conceda ao seu novo usuário os privilégios adequados. Por exemplo, é possível conceder os privilégios de usuário para todas as tabelas dentro do banco de dados, além do poder de adicionar, alterar e remover os privilégios de usuário, com este comando:

  • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

Após isso, saia do shell do MySQL:

  • exit

Conclusão

Agora, você tem uma configuração básica do MySQL instalada em seu servidor. Aqui estão alguns exemplos de passos seguintes:

Creative Commons License