Tutorial

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

Published on May 12, 2020

Manager, Developer Education

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

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:

  1. sudo apt update

Depois disso, instale o pacote mysql-server:

  1. sudo apt install mysql-server

Passo 2 — Configurando o MySQL

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

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. mysql -u root -p

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

  1. 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:

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

Após isso, saia do shell do MySQL:

  1. 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:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.